Pagini recente » Cod sursa (job #328449) | Cod sursa (job #3176808) | Cod sursa (job #3285463) | Cod sursa (job #43609) | Cod sursa (job #1098812)
#include<fstream>
using namespace std;
int n, k, st, dr, mid, t, i, s, maxim;
int v[16001];
ifstream fin("transport.in");
ofstream fout("transport.out");
int main(){
fin>> n >> k;
dr = 0;
maxim = 0;
for(i = 1; i <= n; i++){
fin>> v[i];
dr+= v[i];
if(v[i] > maxim){
maxim = v[i];
}
}
st = maxim;
while(st <= dr){
mid = (st + dr) / 2;
s = 0;
t = 1;
for(i = 1; i <= n; i++){
s = s + v[i];
if(s > mid){
t++;
s = v[i];
}
}
if(t > k){
st = mid + 1;
}
else{
dr = mid - 1;
}
}
fout<< st;
}