Cod sursa(job #516683)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 25 decembrie 2010 17:57:34
Problema Grupuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
# include <fstream>
  using namespace std;
    ifstream f ("grupuri.in");
	ofstream g ("grupuri.out");
	int k, n, a[100100];
    int check (int m){
		int i = 1, s = 0, mk = m * k;
		while (s <= mk && i <= n){
			if (a[i] < k)
				s += a[i];
			else s += k;
		}
		if (i <= n && s > mk) return 1;
		return 0;
	}
	int cb (int in, int sf){
		int ret = 0;
		while (in <= sf){
			int m = (in + sf) >> 1;
			if (check (m)){
				in = m + 1;
				ret = m;
			}
			else sf = m - 1;
		}
		return ret;
	}
	int sum;
	int main (){
		f >> k >> n;
		for (int i = 1; i <= n; ++i)
			f >> a[i], sum += a[i];
		g << cb (1, sum / k) << '\n';
		g.close ();
		return 0;
	}