Rezultati

Up. imeNalogaJezikRezultatČas oddaje
lisperator-2017 Pakiranje piva C++ 0/100Napačen odgovor (WA) 20. apr '17 @ 19:01

Test Točke Porabljen spomin Porabljen čas Status
#1 3/3 3,066 MiB 0,004 s OK
#2 3/3 3,070 MiB 0,004 s OK
#3 3/3 3,035 MiB 0,004 s OK
#4 0/3 3,066 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#5 3/3 3,031 MiB 0,004 s OK
#6 0/3 3,035 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#7 3/3 3,066 MiB 0,004 s OK
#8 3/3 3,066 MiB 0,004 s OK
#9 3/3 3,035 MiB 0,010 s OK
#10 3/3 3,035 MiB 0,004 s OK
#11 0/3 3,066 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#12 3/3 3,035 MiB 0,004 s OK
#13 0/3 3,039 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#14 3/3 3,039 MiB 0,010 s OK
#15 0/3 3,070 MiB 0,010 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#16 0/3 3,070 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#17 3/3 3,066 MiB 0,004 s OK
#18 0/3 3,070 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#19 3/3 3,039 MiB 0,010 s OK
#20 3/3 3,066 MiB 0,010 s OK
#21 3/3 3,066 MiB 0,010 s OK
#22 3/3 3,039 MiB 0,004 s OK
#23 3/3 3,035 MiB 0,004 s OK
#24 3/3 3,070 MiB 0,010 s OK
#25 4/4 3,039 MiB 0,010 s OK
#26 4/4 3,066 MiB 0,010 s OK
#27 4/4 3,066 MiB 0,010 s OK
#28 4/4 3,035 MiB 0,010 s OK
#29 4/4 3,039 MiB 0,010 s OK
#30 4/4 3,039 MiB 0,010 s OK
#31 4/4 3,070 MiB 0,010 s OK

Ocenjevani program (Source.cpp):
#include <iostream>

using namespace std;

int zaloga[1000];

bool eligible(int capacity, int i) {
	if (zaloga[i] % capacity == 0) {
		return true;
	}
	int div = zaloga[i] / capacity + 1;
	int diff = capacity*div - zaloga[i];
	if (diff > div) {
		return false;
	}
	return true;
}

int main() {
	short N;
	cin >> N;
	int min = 1999999999;
	for (int i = 0; i < N; ++i) {
		cin >> zaloga[i];
		if (zaloga[i] < min) {
			min = zaloga[i];
		}
	}

	int maxcap = 0;

	for (int i = 1; i < min; ++i) {
		int cap = min / i + 1;

		int j;
		for (j = 0; j < N; ++j) {
			if (!eligible(cap, j)) {
				break;
			}
		}
		if (j == N) {
			maxcap = cap;
			break;
		}

		cap = min / i;

		for (j = 0; j < N; ++j) {
			if (!eligible(cap, j)) {
				break;
			}
		}
		if (j == N) {
			maxcap = cap;
			break;
		}
	}

	cout << maxcap << endl;

	//system("pause");
	return 0;
}