Cod sursa(job #597339)

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

#define ll long long

ll n, k, v[1000001];

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

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

int main() {
	ll 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;
}