Pagini recente » Cod sursa (job #2208077) | Cod sursa (job #225997) | Cod sursa (job #714150) | Cod sursa (job #764016) | Cod sursa (job #1405503)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16001],i,n,nr,Nr,maxim;
long long s,st,dr,mij,sum,sol;
int main (){
fin>>n>>Nr;
for(i=1;i<=n;i++){
fin>>v[i];
dr=dr+v[i];
if(v[i]>maxim)
maxim=v[i];
}
st=maxim;
//caut binar capacitatea camionului in intervalul max-dr
while(st<=dr){
mij=(st+dr)/2;
//determina nr de trans pe vor fi executate daca capacitatea camionuli-mij
nr=1;
s=0;
for(i=1;i<=n;i++)
if(s+v[i]<=mij)
s+=v[i];
else{
s=v[i];
nr++;
}
if(nr<=Nr){
sol=mij;
dr=mij-1;
}
else{
st=mij+1;
}
}
fout<<sol;
return 0;
}