Pagini recente » Cod sursa (job #1039914) | Cod sursa (job #2698503) | Cod sursa (job #1097533) | Cod sursa (job #3220265) | Cod sursa (job #1200058)
#include <stdio.h>
#define MAXNK 16000
int v[MAXNK];
char bun(int nr, int n, int k){
int i = 0, sum;
while(i < n){
sum = 0;
while(sum <= nr && i < n){
sum += v[i];
i++;
}
if(sum > nr) i--;
k--;
if(k == -1) return 0;
}
return 1;
}
int main(){
FILE *in = fopen("transport.in", "r");
int n, k;
fscanf(in, "%d%d", &n, &k);
int i;
for(i = 0; i < n; i++){
fscanf(in, "%d", &v[i]);
}
fclose(in);
int rez = 0, pas = 1 << 14;
while(pas > 0){
if(!bun(rez + pas, n, k)) rez += pas;
pas /= 2;
}
FILE *out = fopen("transport.out", "w");
fprintf(out, "%d", rez + 1);
fclose(out);
return 0;
}