Pagini recente » Cod sursa (job #1783326) | Cod sursa (job #2221941) | Cod sursa (job #1057447) | Cod sursa (job #1773975) | Cod sursa (job #291019)
Cod sursa(job #291019)
#include<stdio.h>
long n,i,a[100005],c,k;
long long ult,s,dr,st,r,m;
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%ld%ld",&k,&n);
for(i=1;i<=n;++i)
{scanf("%ld",&a[i]);
s+=a[i];}
dr=s/k;
st=1;
while(st<=dr)
{m=(st+dr)/2;
r=1;
c=1;
for(i=1;i<=n;++i)
{if(a[i]>=m)c++;
else{r+=a[i];if(r>m)r=r-m,++c;}
if(c>k)break;}
if(c>k){ult=m;st=m+1;}
else dr=m-1;}
printf("%lld\n",ult);
return 0;
}