Cod sursa(job #597344)

Utilizator deneoAdrian Craciun deneo Data 21 iunie 2011 20:56:12
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>
#include <algorithm>
using namespace std;

int n, k, v[1000001];

bool merge(int mg) {
	long long i, r = 0;
	for(i = 1; i <= n; ++i) r += min(mg, v[i]);
	if(r/mg >= k)
		return 1;
	return 0;
}

int cauta() {
	int rez = 0, i;
	for(i = 1 << 30; i; i >>= 1)
		if(merge(rez + i))
			rez += i;
	return rez;
}

int main() {
	int i;
	ifstream f("grupuri.in");
	f >> k >> n;
	for(i = 1; i <= n; ++i)
		f >> v[i];
	
	ofstream g("grupuri.out");
	g << cauta() << '\n';
	g.close();
	return 0;
}