Pagini recente » Cod sursa (job #1679281) | Cod sursa (job #1004180) | Cod sursa (job #183924) | Cod sursa (job #645714) | Cod sursa (job #211981)
Cod sursa(job #211981)
#include <stdio.h>
int v[16000],n,nrt,c,max,sumav;
void citire()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&nrt);
for (int i=1; i<=n; i++)
{
scanf("%d",&v[i]);
if (v[i]>max)
max=v[i];
sumav+=v[i];
}
}
int calcul(int q)
{
int s=0,nr=0,i=1;
while(i<=n)
{
if (v[i]>q)
return 16000;
if(s+v[i]<=q)
{
s+=v[i];
i++;
}
else
{
nr++;
s=0;
}
}
nr++;
return nr;
}
void cautbin()
{
int st,dr,m;
st=max; dr=sumav;
while (st<dr)
{
m=(st+dr)/2;
if(calcul(m)<=nrt)
dr=m;
else
st=m+1;
}
if(calcul(m)<nrt)
m=st+1;
else
m=st;
printf("%d ",m);
}
int main()
{
citire();
cautbin();
}