Pagini recente » Cod sursa (job #1841516) | Cod sursa (job #2159796) | Cod sursa (job #3274351) | Cod sursa (job #2762383) | Cod sursa (job #2664623)
#include <stdio.h>
#include <stdlib.h>
#define SMAX 256000000
int v[16000];
int cautare(int n, int k){
int min, max, mij, i, s, sk, st;
min = -1;
max = SMAX;
while((max - min) > 1){
mij = (min + max) / 2;
s = 0;
sk = 1;
st = 0;
for(i = 0; i < n; i++){
s += v[i];
if(mij < s){
if(s == v[i]){
st = 1;
}
sk++;
s = v[i];
}
}
if((sk <= k) && (st == 0)){
max = mij;
}else{
min = mij;
}
}
return max;
}
int main()
{
FILE *fin, *fout;
int n, k, i;
fin=fopen("transport.in", "r");
fscanf(fin, "%d%d", &n, &k);
for(i = 0; i < n; i++){
fscanf(fin, "%d", &v[i]);
}
fclose(fin);
fout=fopen("transport.out", "w");
fprintf(fout, "%d", cautare(n, k));
fclose(fout);
return 0;
}