Cod sursa(job #863576)
Utilizator | Mihai Ionut Enache Mihai22e | Data | 23 ianuarie 2013 22:07:00 |
---|---|---|---|
Problema | Grupuri | Scor | 36 |
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(st <= end)
{
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)
st = mid + 1;
else end = mid - 1;
}
g << mid << endl;
f.close();
g.close();
return 0;
}