Pagini recente » Cod sursa (job #1563409) | Cod sursa (job #778420) | Cod sursa (job #1843690) | Cod sursa (job #872254) | Cod sursa (job #1932767)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in"); ofstream g("transport.out");
int n,k,i,mij,p,st,dr,x,a[16004];
int check() {
int nr,s,j; bool ok = 1;
nr = 1;
j = 1;
s = 0;
while (j <= n && ok) {
if(s + a[j] <= mij) {
while(s + a[j] <= mij) {
s += a[j];
++j;
if (j > n) {
break;
}
}
}
if (s == 0) {
nr = 0;
ok = 0;
}
else {
s = 0;
if (j <= n) {
++nr;
}
}
}
return nr;
}
int main()
{
f>>n>>k;
for(i = 1; i <= n; ++i) {
f>>a[i];
}
st = 1;
dr = 256000000;
while(st <= dr) {
mij = st + (dr - st) / 2;
p = check();
if (p == 0 || p > k) {
st = mij + 1;
}
else {
x = mij;
dr = mij - 1;
}
}
g<<x;
return 0;
}