Pagini recente » Cod sursa (job #1454402) | Cod sursa (job #2491645) | Cod sursa (job #1573614) | Cod sursa (job #677757) | Cod sursa (job #221384)
Cod sursa(job #221384)
#include<stdio.h>
int vol[16000], n, k;
int verif(int c)
{
int cc=c, nr=k,i,j;
for(i=0;i<n ;i++)
{
cc=c;
if(vol[i]<=cc)
{
cc-=vol[i];
for(j=i+1;j<n && vol[j]<=cc;j++)
{
i++;
cc-=vol[j];
}
nr--;
}
else return 0;
}
if(nr>=0) return 1;
return 0;
}
int main()
{
int cmin=0,cmax=0,m,i;
freopen("transport.in", "rt", stdin);
freopen("transport.out", "wt", stdout);
scanf("%d%d", &n, &k);
for(i=0;i<n;i++)
{
scanf("%d", &vol[i]);
cmax+=vol[i];
if(vol[i]>cmin) cmin=vol[i];
}
while(cmin<cmax)
{
m=(cmin+cmax)/2;
if(verif(m))
cmax=m;
else cmin=m+1;
}
if(verif(cmax))
printf("%d\n", cmax);
else printf("%d\n", cmin);
return 0;
}