Pagini recente » Cod sursa (job #1775012) | Cod sursa (job #860724) | Cod sursa (job #132934) | Cod sursa (job #1806388) | Cod sursa (job #2072047)
#include <stdio.h>
#include <stdlib.h>
int v[16000];
int n,k;
int check(int r){
int i,s=0,c=1;
for(i=0;i<n;i++)
{
s+=v[i];
if(s+v[i+1]>r)
{
s=0;
c++;
}
}
if(c>k)
return 0;
return 1;
}
int main()
{
int i,r,p;
FILE*fi,*fo;
fi=fopen("transport.in","r");
fo=fopen("transport.out","w");
fscanf(fi,"%d%d",&n,&k);
for(i=0;i<n;i++)
{
fscanf(fi,"%d",&v[i]);
}
r=0;
p=1<<30;
while(p>0){
if(check(r+p)==0)
r+=p;
p/=2;
}
fprintf(fo,"%d",r+1);
fclose(fi);
fclose(fo);
return 0;
}