Pagini recente » Cod sursa (job #74656) | Cod sursa (job #3130167) | Cod sursa (job #1709059) | Cod sursa (job #1171395) | Cod sursa (job #2758088)
#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 = 0,maxim = 0,mij,sol;
in >> n >> k;
for (i = 1; i <= n; i++)
{
in >> a[i];
maxim = max(maxim,a[i]);
dr += a[i];
}
st = maxim;
while (st <= dr)
{
mij = (st + dr) / 2;
if (ver(mij) == true)
{
dr = mij - 1;
sol = mij;
}
else
st = mij + 1;
}
out << sol;
return 0;
}