Pagini recente » Cod sursa (job #1358852) | Cod sursa (job #1140571) | Cod sursa (job #2938520) | Cod sursa (job #2986117) | Cod sursa (job #1043321)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int vol[16001],nrSaltele,nrTransporturi,p,u,volCamion,sol,Max,s,nr,k;
int transport(int volCamion){
int nr=1;
int s=0;
for(int i=1;i<=nrSaltele;i++)
if(s+vol[i]<=volCamion)
s=s+vol[i];
else{
nr++;
s=0;
}
return nr;
}
int main()
{
f>>nrSaltele>>nrTransporturi;
Max=0;
s=0;
for(int i=1;i<=nrSaltele;i++){
f>>vol[i];
if(vol[i]>Max)
Max=vol[i];
s=s+vol[i];
}
p=Max;u=s;
while(p<=u){
volCamion=(p+u)/2;
nr=transport(volCamion);
if(nr>k)
p=volCamion+1;
else{
sol=volCamion;
u=volCamion-1;
}
}
g<<sol;
return 0;
}