Pagini recente » Cod sursa (job #1003663) | Cod sursa (job #131809) | Cod sursa (job #531909) | Cod sursa (job #1541774) | Cod sursa (job #1785128)
#include <cstdio>
int x[16010];
int main()
{
FILE *fin,*fout;
int i,s,s1,max1,st,dr,m,nr,k,n;
fin=fopen("transport.in","r");
fout=fopen("transport.out","w");
fscanf(fin,"%d%d", &n, &k);
s1=max1=0;
for (i=1;i<=n;i++) {
fscanf(fin,"%d", &x[i]);
s1+=x[i];
if (x[i]>max1)
max1=x[i];
}
st=max1;
dr=s1;
while (dr>st) {
nr=s=0;
m=(st+dr)/2;
for (i=1;i<=n;i++)
if (x[i]+s<=m)
s+=x[i];
else
s=x[i],nr++;
if (nr<k)
dr=m-1;
else
st=m+1;
}
fprintf(fout,"%d", st);
return 0;
}