Pagini recente » Cod sursa (job #461102) | Cod sursa (job #2126947) | Cod sursa (job #2420397) | Cod sursa (job #2360731) | Cod sursa (job #2457820)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 16000
#define VALMAX 256000000
int v [ NMAX + 1 ] ;
int nrtransp (int C,int n) {
int i,S,k;
S=k=0;
for(i=0;i<n;i++){
if(v[i]>C){
k=VALMAX;
}
if(S+v[i]<=C){
S=S+v[i];
}
else{
k++;
S=v[i];
}
}
if(S>0&&S<C){
k++;
}
return k ;
}
int main()
{
FILE *fin,*fout;
fin=fopen("transport.in","r");
fout=fopen("transport.out","w");
int C,n,k,i,st,dr,mij;
mij=0;
fscanf(fin,"%d%d",&n,&k);
for(i=0;i<n;i++){
fscanf(fin,"%d",&v[i]);
}
st=1;
dr=VALMAX;
///printf("%d",nrtransp(7,n));
while(st<dr){
mij=(st+dr)/2;
if(nrtransp(mij,n)<=k){
dr=mij;
}
else{
st=mij+1;
}
}
fprintf(fout,"%d",st);
fclose(fin);
fclose(fout);
return 0;
}