Pagini recente » Cod sursa (job #895195) | Cod sursa (job #300984) | Cod sursa (job #2586270) | Cod sursa (job #214102) | Cod sursa (job #2803839)
#include <iostream>
#include <fstream>
#define Nmax 16000
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
short n,k,i,mx,cap,tr;
int l,r,m,mmin;
short v[Nmax];
int main()
{
fin>>n>>k;
for (i=0;i<n;i++)
{
fin>>v[i];
if (v[i]>mx)
mx=v[i];
}
l=mx;
r=Nmax*Nmax;
while (l<=r)
{
m=(l+r)/2;
///simulare
i=tr=cap=0;
while (i<n && tr<=k)
{
cap=0;
while (cap+v[i]<=m && i<n)
{
cap+=v[i];
i++;
}
tr++;
}
if (tr>k)
l=m+1;
else
{
r=m-1;
mmin=m;
}
}
fout<<mmin;
return 0;
}