Pagini recente » pre_oni_gim2015 | Cod sursa (job #1387208) | Cod sursa (job #2826435) | Cod sursa (job #2843980) | Cod sursa (job #2830354)
#include <bits/stdc++.h>
using namespace std;
const int dim = 16005;
int a[dim], n, k;
int HowMany(int cap)
{
int trans = 1, s = 0;
for(int i = 1; i <= n; i++)
{
if(s + a[i] <= cap)
s += a[i];
else
trans++, s = a[i];
}
return trans;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f >> n >> k;
for(int i = 1; i <= n; i++)
f >> a[i];
int left = 1, right = dim * dim, sol;
while(left <= right)
{
int mid = (left + right) / 2;
if(HowMany(mid) <= k)
right = mid - 1, sol = mid;
else
left = mid + 1;
}
g << sol;
return 0;
}