Pagini recente » Cod sursa (job #3197538) | Cod sursa (job #2728865) | Cod sursa (job #1168474) | Cod sursa (job #1785553) | Cod sursa (job #1521716)
#include <iostream>
#include <fstream>
#define Nmax 16010
using namespace std;
int s, k, n, v[Nmax], c = Nmax*Nmax;
int nrt(int maxCapacity)
{
int nrTransporturi = 1, currentMass = 0;
for(int i = 0; i < n; ++i)
{
if(v[i] > maxCapacity)
return c;
if(currentMass + v[i] > maxCapacity)
{
++nrTransporturi;
currentMass = v[i];
}
else
{
currentMass+= v[i];
}
if(nrTransporturi > k)
return c;
}
return nrTransporturi;
}
int solve()
{
for(int i = s/k; i <= s/k + Nmax; ++i)
if(nrt(i) <= k)
return i;
}
int main()
{
fstream f("transport.in", ios::in);
fstream g("transport.out", ios::out);
f>>n>>k;
for(int i = 0; i < n; ++i)
{
f>>v[i];
s+= v[i];
}
g<<solve();
return 0;
}