Cod sursa(job #1783240)
Utilizator | Data | 18 octombrie 2016 21:28:57 | |
---|---|---|---|
Problema | Grupuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.74 kb |
#include<fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
long long k,n,i,v[100001],y,st,dr,s,ss,x;
int main()
{
fin>>k>>n;
for(i=1;i<=n;i++)
{
fin>>v[i];
s+=v[i];
}
st=1;
dr=s/k;
while(st<=dr)
{
ss=0;
x=(st+dr)/2;
for(i=1;i<=n;i++)
{
y=v[i];
if(v[i]>=x)
y=x;
ss+=y;
}
if(ss-x*k<=x-1&&ss-x*k>=0)
st=x+1;
else
if(ss-x*k>=x)
st=x+1;
else
if(ss-x*k<=0)
dr=x-1;
}
fout<<dr;
fin.close();
fout.close();
return 0;
}