Pagini recente » Cod sursa (job #625101) | Cod sursa (job #684668) | Cod sursa (job #1499666) | Cod sursa (job #1084224) | Cod sursa (job #2831896)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int dim = 16005;
ll a[dim], n, k, s, maxx;
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;
}
ll cautare_binara(ll left, ll right)
{
ll sol = 0;
while(left <= right)
{
ll mid = (left + right) / 2;
if(HowMany(mid) <= k)
{
sol = mid;
right = mid - 1;
}
else
left = mid + 1;
}
return sol;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f >> n >> k;
for(ll i = 1; i <= n; i++)
{
f >> a[i];
if(a[i] > maxx)
maxx = a[i];
s += a[i];
}
g << cautare_binara(maxx, s);
return 0;
}