Pagini recente » Rating Vicu Iustin (Iustin1398) | Cod sursa (job #1845049) | Cod sursa (job #1118198) | Cod sursa (job #2048013) | Cod sursa (job #3296141)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, k, v[16001], maxim = -1;
int f(int capacitate)
{
int incarcatura = 0, transporturi = 1;
for(int i=1; i <= n; i++)
{
incarcatura += v[i];
if(incarcatura > capacitate)
{
transporturi ++;
incarcatura = v[i];
}
}
return transporturi;
}
int main()
{
cin >> n >> k;
for(int i=1; i <= n; i++)
{
cin >> v[i];
if(v[i] > maxim)
maxim = v[i];
}
int st = maxim, dr = 256000000;
while(st < dr)
{
int mij = (st + dr) / 2;
if(f(mij) <= k)
dr = mij;
else st = mij + 1;
}
cout << st << endl;
}