Cod sursa(job #516685)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 25 decembrie 2010 18:05:06
Problema Grupuri Scor 2
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;
			++i;
		}
		if (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;
	}