Pagini recente » Cars | Cod sursa (job #691818) | Cod sursa (job #2296970)
#include <fstream>
#include <iostream>
#include <math.h>
#include <bitset>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int nr_saltele, drumuri, s[16001], i, j, cap, maxim, st, dr;
int verif(int x)
{
int i, nr_d=1, aux = 0;
i = 1;
while (i <= nr_saltele)
{
if (aux + s[i] <= x)
aux += s[i];
else
{
aux = s[i];
nr_d++;
}
i++;
}
if(nr_d>drumuri)
return 2;
return 0;
}
int main()
{
int mijl, aux;
fin >> nr_saltele >> drumuri;
maxim = 0;
for (i = 1; i<= nr_saltele; i++)
{
fin >> s[i];
if(s[i] > maxim)
maxim = s[i];
}
st = 1;
dr = 256000000;
while (st <= dr)
{
mijl = (st+dr)/2;
aux = verif(mijl);
if (aux == 2)
{
st=mijl+1;
}
else
{
cap=mijl;
dr=mijl-1;
}
}
fout << cap;
return 0;
}