Pagini recente » Cod sursa (job #1022997) | Cod sursa (job #1678474) | Cod sursa (job #1798353) | Cod sursa (job #595158) | Cod sursa (job #1495720)
#include<stdio.h>
#include<stdlib.h>
#define MAXN 16001
int v[MAXN];
int main(){
FILE*fin=fopen("transport.in", "r");
FILE*fout=fopen("transport.out", "w");
int n, i, cmin, c, cmax, max, pasi, s, k;
fscanf(fin, "%d%d", &n, &k);
cmax=0;
max=0;
for(i=1; i<=n; i++){
fscanf(fin, "%d", &v[i]);
cmax+=v[i];
if(v[i]>max)
max=v[i];
}
cmin=max;
while(cmin<=cmax){
c=(cmin+cmax)/2;
i=1;
pasi=0;
while(i<=n){
s=0;
while(s+v[i]<=c && i<=n){
s+=v[i];
i++;
}
// printf("%d %d %d\n", c, s, i);
pasi++;
}
if(pasi<=k)
cmax=c-1;
else
cmin=c+1;
// printf("%d %d\n", cmin, cmax);
}
fprintf(fout, "%d", cmax);
return 0;
}