Pagini recente » Cod sursa (job #95895) | Cod sursa (job #1174837) | Cod sursa (job #1799191) | Cod sursa (job #2002951) | Cod sursa (job #1711643)
#include <stdio.h>
#include <stdlib.h>
int salt[16009];
int k,n;
int poate(int c){
int i,s=0,ck=k;
for(i=0;i<n;i++){
if(salt[i]>c)
return 0;
if(s+salt[i]>c){
ck--;
s=0;
}
s+=salt[i];
if(ck==0)
return 0;
}
if(i==n && ck>0)
return 1;
else
return 0;
}
int main()
{
int pas=1<<13,j;
FILE*fin,*fout;
fin=fopen("transport.in","r");
fscanf(fin,"%d%d",&n,&k);
for(j=0;j<n;j++)
fscanf(fin,"%d",&salt[j]);
j=0;
while(pas!=0){
if(poate(j+pas)==0)
j+=pas;
pas/=2;
}
j++;
fout=fopen("transport.out","w");
fprintf(fout,"%d",j);
fclose(fout);
return 0;
}