Cod sursa(job #1906240)
Utilizator | Data | 6 martie 2017 12:54:05 | |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <bits/stdc++.h>
using namespace std;
long long s,i,n,k,v[100010],mid,in,sf,nr;
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];
}
in=0;
sf=s/k;
while(in<=sf)
{
mid=(in+sf)/2;
nr=mid*k;
for(i=1; i<=n; ++i)
if(v[i]<=mid)nr-=v[i];
else nr-=mid;
if(nr<=0)in=mid+1;
else sf=mid-1;
}
g<<(in+sf)/2;
return 0;
}