Pagini recente » Cod sursa (job #2581645) | Cod sursa (job #221918) | Cod sursa (job #2287459) | Cod sursa (job #2809980) | Cod sursa (job #2831892)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int dim = 16005;
ll a[dim], n, k;
ll HowMany(ll cap)
{
ll trans = 1, s = 0;
for(ll i = 1; i <= n; i++)
{
if(s + a[i] <= cap)
s += a[i];
else
trans++, s = a[i];
}
return trans;
}
int main()
{
ll maxx = -1;
ifstream f("transport.in");
ofstream g("transport.out");
f >> n >> k;
for(ll i = 1; i <= n; i++)
f >> a[i], maxx = max(maxx, a[i]);
ll i;
for(i = 1; i <= n; i++)
if(a[i] == maxx)
break;
ll left = i, right = 256000000, sol;
while(left <= right)
{
ll mid = (left + right) / 2;
if(HowMany(mid) <= k)
right = mid - 1, sol = mid;
else
left = mid + 1;
}
g << 1LL * sol;
return 0;
}