Pagini recente » Cod sursa (job #3333882) | Borderou de evaluare (job #3328687) | Cod sursa (job #3351553) | Cod sursa (job #3349111) | Cod sursa (job #3352552)
#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--;
}
return i==n;
}
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<<st;
}