Pagini recente » Cod sursa (job #1227265) | Cod sursa (job #360353) | Cod sursa (job #2341729) | Cod sursa (job #456634) | Cod sursa (job #2156181)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k,i,st,dr,maxi,mid;
int v[16002];
int verif (int x){
int nr = 0;
int ap = 1;
for (int i=1;i<=n;i++){
if (nr + v[i] <= x)
nr += v[i];
else{
nr = v[i];
if (nr > x)
return 0;
ap++;
}
}
if (ap <= k)
return 1;
else
return 0;
}
int main (){
fin>>n>>k;
for (i=1;i<=n;i++){
fin>>v[i];
maxi += v[i];
}
/// cautam binar capacitatea camionului
st = 1;
dr = maxi;
while (st <= dr){
mid = (st+dr)/2;
if (verif (mid)) /// putem transporta toate saltele cu o capacitate mid, deci cautam una mai mica
dr = mid-1;
else
st = mid+1;
}
fout<<st;
return 0;
}