Pagini recente » Cod sursa (job #2635916) | Cod sursa (job #1619988) | Cod sursa (job #3232309) | Cod sursa (job #1419330) | Cod sursa (job #2082772)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
const int N=16002;
int st[N], i, n, k;
bool camion (int x)
{
//verifica daca cel mult k transporturi efectuate cu un camion de capacitate c pot incarca toate saltelele
int cc=x, nr=1;
for (i=0; i<n; i++)
{
if (st[i]>x)
{
return false;
}
if (st[i]>cc)
{
nr++;
cc=x;
}
cc-=st[i];
if (nr>k)
{
return false;
}
}
return true;
}
int main()
{
int r, pas;
f>>n>>k;
r=0;
pas = 1<<27;
for (i=0; i<n; i++)
{
f>>st[i];
}
while (pas!=0)
{
if (!camion(r+pas))
{
r+=pas;
}
pas/=2;
}
r++;
g<<r;
return 0;
}