Pagini recente » Cod sursa (job #3329722) | Cod sursa (job #721921) | Monitorul de evaluare | Cod sursa (job #3304137) | Cod sursa (job #3352551)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
bool valid(int camion,int k,int n,int v[])
{
int i,S = 0;
i = 0;
while(i<n&&k>0){
S = 0;
while(S+v[i] <= camion && i<n){
S+= v[i];
i++;
}
k--;
}
if(k <= 0){
return false;
}
else{
return true;
}
}
int main()
{
int n,i,k,camion,st,S,dr,v[16001],k1;
fin>>n>>k;
for(i = 0; i < n; i++){
fin>>v[i];
}
st = 0;
dr = 256000000;
while(st <= dr){
camion = (dr-st+1)/2 + st;
if( valid(camion,k,n,v) == false){
st = camion+1;
}
else{
dr = camion-1;
}
}
fout<<camion;
}