Pagini recente » Cod sursa (job #2844280) | Cod sursa (job #1504010) | Cod sursa (job #2847780) | Cod sursa (job #208699) | Cod sursa (job #3336262)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
const int mxN = 16e3 + 1;
const int INF = 16100 * 16100 + 1;
int n, saltele[mxN], k;
bool test(int camion){
int indice = 1;
for(int i = 1; i <= k; i++){
int vol = 0;
while(vol + saltele[indice] <= camion){
vol += saltele[indice++];
if(indice > n)
return true;
}
}
return false;
}
int cautBin(){
int st = 1, dr = INF, mid;
while(st <= dr){
mid = (st + dr) / 2;
if(test(mid)){
dr = mid - 1;
}else{
st = mid + 1;
}
}
return st;
}
int main(){
fin >> n >> k;
for(int i = 1; i <= n; i++)
fin >> saltele[i];
fout << cautBin();
return 0;
}