Pagini recente » Cod sursa (job #261819) | Cod sursa (job #536789) | Cod sursa (job #2705695) | Cod sursa (job #314008) | Cod sursa (job #2756325)
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,a[16005];
bool ver(int c)
{
int t = 1,i,s = 0;
for (i = 1; i <= n; i++)
{
if (s + a[i] > c)
{
t++;
s = 0;
}
s += a[i];
}
if (t > k)
return false;
return true;
}
int main()
{
int i,st,dr,maxim = 0,mij;
in >> n >> k;
for (i = 1; i <= n; i++)
{
in >> a[i];
maxim = max(maxim,a[i]);
}
st = maxim;
dr = maxim * k;
while (st <= dr)
{
mij = (st + dr) / 2;
if (ver(mij) == true)
dr = mij - 1;
else
st = mij + 1;
}
if (ver(dr) == true)
out << dr;
else
out << st;
return 0;
}