Pagini recente » Cod sursa (job #3287488) | Cod sursa (job #2547634) | Cod sursa (job #3269659) | Cod sursa (job #2760312) | Cod sursa (job #420324)
Cod sursa(job #420324)
#include<stdio.h>
#define ll long long
int k,n;
int v[100003];
ll s,st,dr,m;
int calcul(int loc)
{
int cloc=loc;
int nr=0,i=1;
while(nr<k && i<=n)
{
if(v[i]>loc)
{
nr++;
i++;
continue;
}
cloc-=v[i];
if(cloc<1)
{
cloc+=loc;
nr++;
}
i++;
}
if(nr<k)
return 0;
return 1;
}
int main ()
{
int r,i;
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
scanf("%d%d",&k,&n);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
s+=v[i];
}
st=1;dr=s/k;
while(st<=dr)
{
m=(st+dr)/2;
r=calcul(m);
if(!r)
dr=m-1;
else
st=m+1;
}
printf("%lld\n",dr);
return 0;
}