Pagini recente » Cod sursa (job #248598) | Cod sursa (job #2088518) | Cod sursa (job #1409763) | Cod sursa (job #2583410) | Cod sursa (job #1789779)
#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=1, left1=val;
for (i = 1; i <= n; i++)
{
if (v[i] <= left1) left1 -= v[i];
else { nrbuc++; left1 = 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;
}
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];
}
Cbin();
return 0;
}