Pagini recente » Cod sursa (job #1430453) | Cod sursa (job #1432021) | Cod sursa (job #1741323) | Cod sursa (job #1432067) | Cod sursa (job #1741693)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16001];
int N,K;
int valid(int c) {
int nr=0,s=0;
for (int i=1;i<=N;i++) {
if (v[i]>c) {
return 0;
}
s+=v[i];
if (s>c) {
nr++;
s=v[i];
}
}
if (s>0) {
nr++;
}
return nr<=K;
}
int search(int c) {
int mid,lo=1,hi=c,last=c+1;
while (lo<=hi) {
mid=lo+(hi-lo)/2;
if (valid(mid)) {
last=mid;
hi=mid-1;
}
else {
lo=mid+1;
}
}
return last;
}
int main() {
int C,S=0;
in>>N>>K;
for (int i=1;i<=N;i++) {
in>>v[i];
S+=v[i];
}
out<<search(S);
return 0;
}