Pagini recente » Cod sursa (job #165230) | Cod sursa (job #2904001) | Cod sursa (job #2475848) | Cod sursa (job #2775052) | Cod sursa (job #2976836)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n, k, i, m, s, v[16001], x, aux, j, st,dr;
int
main ()
{
f >> n >> k;
for (i = 1; i <= n; i++)
{
f >> v[i];
dr=dr+v[i];
if (v[i] > m)
m = v[i];
}
aux = 1;
st=1;
while (st<dr)
{ m=(st+dr)/2;s=0;
for (i = 1; i <= n; i++)
{
if(s+v[i]<=m)
{
s = s + v[i];
}
else
{
s=v[i];
aux++;
}
}
if(aux>k)
st=st+1;
else
dr=dr-1;
if(aux==k)
break;
g<<m<<' '; aux=0;
}
g<<m+1;
return 0;
}