Pagini recente » Cod sursa (job #945445) | Cod sursa (job #1471526) | Cod sursa (job #1466529) | Cod sursa (job #1362213) | Cod sursa (job #169293)
Cod sursa(job #169293)
#include<cstdio>
long long a[100001],n,i,k,s,st,dr,mij,x;
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%lld %lld",&k,&n);
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
s+=a[i];}
st=1;dr=s/k;
while(dr-st>1)
{
mij=(st+dr)>>1;
x=mij*k;
for(i=1;i<=n && x>0;i++)
if(a[i]>mij) x-=mij;
else x-=a[i];
if(x<=0) st=mij;
else dr=mij-1;
}
x=mij*dr;
for(i=1;i<=n && x>0;i++)
if(a[i]>mij) x-=mij;
else x-=a[i];
if(x<=0) st=dr;
printf("%lld\n",st);
fclose(stdout);
return 0;
}