Pagini recente » Cod sursa (job #2422087) | Cod sursa (job #273867) | Istoria paginii runda/amigoodenoughforojigim/clasament | Istoria paginii runda/blablalblalblalfefefeffe/clasament | Cod sursa (job #3152344)
#include <stdio.h>
#include <stdlib.h>
int v[16000];
int main()
{
FILE *fin, *fout;
fin = fopen("transport.in", "r");
fout = fopen("transport.out", "w");
int n, k, a, i, mx, mi, mij, sum;
fscanf(fin, "%d %d", &n, &k);
mi = mx = 0;
for(i = 0 ; i < n; i ++){
fscanf(fin, "%d", &v[i]);
if(mi < v[i]){
mi = v[i];
}
}
mx = mi * n;
mij = 0;
while(mi < mx && mi != (mi + mx) / 2){
mij = (mi + mx) / 2;
sum = 0;
a = 1;
for(i = 0; i < n; i++){
if(sum + v[i] <= mij){
sum += v[i];
}else{
a++;
sum = v[i];
}
}
if(a <= k){
mx = mij;
}else{
mi = mij;
}
}
fprintf(fout, "%d", mx);
fclose(fin);
fclose(fout);
return 0;
}