Pagini recente » Cod sursa (job #3283781) | Cod sursa (job #2059423) | Cod sursa (job #826483) | Cod sursa (job #2463211) | Cod sursa (job #2658406)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int main()
{
int n, k, v[16001], st, dr, mij, s = 0, nrture = 0, vmax = 0, nr;
cin >> n >> k;
for(int i = 1; i <= n; i++)
{
cin >> v[i];
if(v[i] > vmax)
vmax = v[i];
}
st = vmax;
dr = 256000000;
while(st <= dr)
{
mij = (st + dr) / 2;
s = 0, nrture = 1;
for(int i = 1; i <= n; i++)
{
if(v[i] + s <= mij)
s += v[i];
else
{
nrture++;
s = v[i];
}
}
if(nrture > k)
st = mij + 1;
else
{
nr = mij;
dr = mij - 1;
}
}
cout << nr;
return 0;
}