Pagini recente » Cod sursa (job #105911) | Cod sursa (job #2516710) | Cod sursa (job #2121536) | Cod sursa (job #62149) | Cod sursa (job #169292)
Cod sursa(job #169292)
#include<cstdio>
int a[100001],n,i,k,s,st,dr,mij,x;
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%d %d",&k,&n);
for(i=1;i<=n;i++){
scanf("%d",&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("%d\n",st);
fclose(stdout);
return 0;
}