Cod sursa(job #2353600)
Utilizator | Data | 24 februarie 2019 13:28:42 | |
---|---|---|---|
Problema | Grupuri | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <fstream>
using namespace std;
int n, k, st, dr, nr, a[100001], s, i, mid;
int main () {
ifstream fin ("grupuri.in");
ofstream fout ("grupuri.out");
fin>>k>>n;
for (i=1;i<=n;i++) {
fin>>a[i];
s+=a[i];
}
st=1;
dr=s/k;
while (st<=dr) {
mid = (st+dr)/2;
nr=0;
for (i=1;i<=n;i++) {
if (a[i]<=mid) {
nr+=a[i];
}else
nr+=mid;
}
if (nr>=mid*k)
dr=mid-1;
else
st=mid+1;
}
fout<<dr;
return 0;
}