Pagini recente » Cod sursa (job #678826) | Cod sursa (job #507226) | Cod sursa (job #1097105) | Cod sursa (job #336732) | Cod sursa (job #1675157)
#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-1;
else st = pivot+1;
}
cout << st+1;
return 0;
}