Pagini recente » Cod sursa (job #520157) | Cod sursa (job #597076) | Cod sursa (job #5806) | Cod sursa (job #1453201) | Cod sursa (job #2103554)
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define sz size
#define pb push_back
#define mp make_pair
#define bg begin
#define nd end
using namespace std;
#define int long long
const int maxn = 100003;
const int maxk = 16003;
int n,k,a[maxk];
bool check(int x) {
int sum = 0;
int cst = 0;
for(int i=0;i<n;++i) {
if(sum + a[i] > x){
++cst;
sum = 0;
}
sum += a[i];
}
if(sum) ++cst;
return cst <= k;
}
int32_t main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> k;
int lo = 1;
for(int i=0;i<n;++i) {
cin >> a[i];
lo = max(lo,a[i]);
}
int hi = (1e9);
while(hi - lo > 1) {
int mid = (lo + hi) / 2;
if(check(mid))
hi = mid;
else
lo = mid;
}
int res = hi;
if(check(lo))
res = lo;
cout << res << '\n';
return 0;
}