Pagini recente » Cod sursa (job #2627329) | Cod sursa (job #1887225) | Cod sursa (job #783816) | Cod sursa (job #241502) | Cod sursa (job #2701780)
#include <iostream>
#include <fstream>
using namespace std;
string file = "transport";
ifstream fin(file + ".in");
ofstream fout(file + ".out");
int n, k, v[16006], x;
inline bool capacitate(long long val){
long long s = 0, nr = 0;
for( int i = 1; i <= n; ++i){
s+=v[i];
if(v[i] > val)
return 0;
if( s + v[i+1] > val ){
nr++;
s = 0;
}
}
nr++;
if(nr <= k)
return 1;
return 0;
}
inline void citire(){
fin>>n>>k;
for( int i = 1; i <= n; ++i ){
fin>>v[i];
// v[i] = v[i-1] + x;
}
}
int main(){
citire();
// caut capacitatea minima
long long st = 1;
long long dr = 16000 * 16000;
while( st <= dr ){
long long mid = (st + dr) / 2;
if(capacitate(mid))
dr = mid-1;
else
st = mid + 1;
}
fout<<st;
return 0;
}