Pagini recente » Cod sursa (job #2739615) | Cod sursa (job #2293506) | Cod sursa (job #2732539) | Cod sursa (job #1648884) | Cod sursa (job #1711653)
#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<<14,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>=1){
if(poate(j+pas)==0)
j+=pas;
pas/=2;
}
j++;
fout=fopen("transport.out","w");
fprintf(fout,"%d",j);
fclose(fout);
return 0;
}