Pagini recente » Cod sursa (job #787884) | Cod sursa (job #2860316) | Cod sursa (job #1188910) | Cod sursa (job #2815160) | Cod sursa (job #1677058)
#include <bits/stdc++.h>
#define MOD 666013
#define ll long long
using namespace std;
int N, K, A[16005], st, dr;
int check(int k)
{
int x = k, nr = 1;
for(int i = 1; i <= N; i++)
{
if(x - A[i] < 0)
{
nr++;
x = k - A[i];
}
else x -= A[i];
}
return nr;
}
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) <= K) dr = pivot-1;
else st = pivot+1;
}
cout << dr+1;
return 0;
}