Cod sursa(job #2295882)
Utilizator | Data | 3 decembrie 2018 23:56:32 | |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <fstream>
using namespace std;
ifstream f ("grupuri.in");
ofstream g ("grupuri.out");
long long k,n,st,dr,mid,s,v[100003];
int main()
{
f>>k>>n;
for(int i=1;i<=n;++i)
{
f>>v[i];
s+=v[i];
}
st=1;
dr=s/k;
while(st<=dr)
{
mid=(st+dr)/2;
s=0;
for(int i=1;i<=n;++i) s+=min(mid,v[i]);
if(s>=k*mid) st=mid+1;
else dr=mid-1;
}
g<<dr;
return 0;
}