Pagini recente » Borderou de evaluare (job #2753275) | Monitorul de evaluare | Borderou de evaluare (job #2622619) | Borderou de evaluare (job #505562) | Cod sursa (job #3311501)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16001];
int main()
{
int n,k,i,st,dr,mijl,sol,nrt,s;
cin>>n>>k;
st=0;
dr=0;
for(i=1;i<=n;i++)
{
cin>>v[i];
if(st<v[i])
st=v[i];
dr+=v[i];
}
sol=-1;
while(st<=dr)
{
mijl=(st+dr)/2;
/// calculez nr de transporturi in cazul in care camionul are capacitatea mijl
nrt=1;
s=0;
for(i=1;i<=n;i++)
if(s+v[i]<=mijl)
s+=v[i];
else
{
s=v[i];
nrt++;
}
if(nrt<=k)
{
sol=mijl;
dr=mijl-1;
}
else
st=mijl+1;
}
cout<<sol;
return 0;
}