Pagini recente » Cod sursa (job #2335277) | Cod sursa (job #2335919) | Cod sursa (job #2237497) | Cod sursa (job #2836379) | Cod sursa (job #3166169)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, v[16005], mid;
int t(int x){
int s = v[1];
int nr = 1;
for (int i = 2; i <= n; i++){
if ( s + v[i] <= x )
s += v[i];
else{
nr++;
s = v[i];
}
}
return nr;
}
int main(){
fin >> n >> k;
int maxim = 1;
for (int i = 1; i <= n; i++){
fin >> v[i];
if ( maxim < v[i] )
maxim = v[i];
}
int st = maxim;
int dr = 2e9;
while ( st <= dr ){
mid = (st + dr)/2;
if ( t(mid) > k )
st = mid + 1;
else
dr = mid - 1;
}
fout << st;
return 0;
}