Pagini recente » Cod sursa (job #2740923) | Cod sursa (job #2207969) | Cod sursa (job #2654367) | Cod sursa (job #2084358) | Cod sursa (job #1789802)
#include <iostream>
#include <fstream>
#include <algorithm>
#define ll long long
using namespace std;
int lim;
int n, k, p, n1, n2, v[16005];
ifstream f("transport.in");
ofstream g("transport.out");
int Test(int val)
{
int i, nrbuc = 0, left = -1;
for (i = 1; i <= n; i++)
{
if (v[i] > val) return (1 << 30);
}
for (i = 1; i <= n; i++)
{
if (v[i] <= left) left -= v[i];
else
{ nrbuc++; left = val - v[i]; }
}
return nrbuc;
}
void Cbin()
{
int st = 0, dr = lim, mid;
while (st <= dr)
{
mid = (st + dr) / 2;
if (Test(mid) <= k) dr = mid - 1; else st = mid + 1;
}
mid = (st + dr) / 2;
if (Test(mid)>k) mid++;
g << mid << "\n";
}
int main()
{
int i;
f >> n >> k;
for (i = 1; i <= n; i++)
{
f >> v[i];
lim += v[i];
}
cout << Test(8);
Cbin();
return 0;
}