Pagini recente » Istoria paginii runda/runda_1_biscuiti_cu_lacuste/clasament | Cod sursa (job #1850110) | Cod sursa (job #335675) | Cod sursa (job #2556686) | Cod sursa (job #2576230)
#include <stdio.h>
int v[16001];
using namespace std;
int main()
{
FILE* in = fopen("transport.in", "r");
FILE* out = fopen("transport.out", "w");
int n, k, st, dr, i, j, nr, rasp, m;
st = dr = 0;
fscanf(in, "%d %d", &n, &k);
for (i = 0; i < n; i++) {
fscanf(in, "%d", &v[i]);
if (v[i] > st) {
st = v[i];
}
dr += v[i];
}
nr = 0;
while(st <= dr) {
j = 0;
nr = 0;
m = (st + dr) / 2;
for (i = 0; i != n; i++) {
j += v[i];
if (j > m) {
nr++;
j = v[i];
}
}
nr++;
if (nr <= k) {
rasp = m;
}
if (nr > k) {
st = m + 1;
} else {
dr = m - 1;
}
}
fprintf(out, "%d", rasp);
return 0;
}