Pagini recente » Cod sursa (job #2518429) | Cod sursa (job #2340067) | Cod sursa (job #2091548) | Cod sursa (job #632206) | Cod sursa (job #3316500)
#include <iostream>
#include <cmath>
#include <vector>
#include "stdio.h"
using namespace std;
#define ll long long
const int inf = 0x3f3f3f3f;
int main() {
#ifdef DEBUG
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
#ifdef INFOARENA
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
#endif //INFOARENA
ll n;
cin >> n;
ll k;
cin >> k;
vector<ll> s(n);
for(int i=0;i<n;i++) {
cin >> s[i];
}
ll res = 0;
for(ll step = 1ll << 48; step; step>>=1) {
ll h = res + step;
ll cap = k;
ll truck = 0;
for(int i=0;i<n;i++) {
if(s[i] > h) {
res += step;
break;
}
if(truck + s[i] <= h) {
truck += s[i];
} else {
cap--;
truck = s[i];
}
if(cap == 0) {
res += step;
break;
}
}
}
cout << res+1;
return 0;
}