Cod sursa(job #863583)
Utilizator | Data | 23 ianuarie 2013 22:12:50 | |
---|---|---|---|
Problema | Grupuri | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include<fstream>
using namespace std;
#define MAXN 100002
int N, K, st, mid, end, i, s;
int v[ MAXN ];
int main()
{
ifstream f("grupuri.in");
ofstream g("grupuri.out");
f >> K >> N;
for(i = 1; i <= N; ++i)
f >> v[i], s += v[i];
st = 1;
end = s / K;
while(end - st > 1)
{
mid = (st + end) / 2;
s = 0;
for(i = 1; i <= N; ++i)
if(v[i] > mid)
s += mid;
else s += v[i];
if(s <= mid*K)
end = mid;
else st = mid;
}
g << end << endl;
f.close();
g.close();
return 0;
}