Pagini recente » Cod sursa (job #455622) | Cod sursa (job #1019907) | Cod sursa (job #1815107) | Cod sursa (job #1777260) | Cod sursa (job #1675181)
#include <bits/stdc++.h>
#define MOD 666013
#define ll long long
using namespace std;
int N, K, A[16005], st, dr;
bool check(int k)
{
int x = 0, nr = 0;
for(int i = 1; i <= N; i++)
{
if(x+A[i] > k)
{
nr++;
x = A[i];
}
else x += A[i];
}
if(nr <= K) return 1;
return 0;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
assert(freopen("transport.in","r", stdin));
assert(freopen("transport.out","w", stdout));
cin >> N >> K;
for(int i = 1; i <= N; i++)
{
cin >> A[i];
st = max(st, A[i]);
dr += A[i];
}
while(st < dr)
{
int pivot = (st+dr)/2;
if(check(pivot)) dr = pivot;
else st = pivot;
}
cout << dr+1;
return 0;
}