Pagini recente » Cod sursa (job #2382515) | Cod sursa (job #1452222) | Cod sursa (job #3139428) | Cod sursa (job #909831) | Cod sursa (job #2151155)
//
// main.cpp
// transport
//
// Created by Radu Costache on 04.03.2018.
// Copyright © 2018 Radu Costache. All rights reserved.
//
#include <fstream>
#define MAX(a,b) ((a) > (b) ? (a) : (b))
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,st,dr,v[16000];
int nrop(int);
int findC();
int main(int argc, const char * argv[]) {
// insert code here...
f >> n >> k;
for(int i = 0 ; i < n ; ++i){
f >> v[i];
dr += v[i];
}
g << findC() << '\n';
return 0;
}
int findC(){
int m;
while(st <= dr){
m = (st + dr) / 2;
int x = nrop(m);
if(x <= k)dr = m - 1;
else st = m + 1;
}
return st;
}
int nrop(int x){
int s = 0,t = 1;
for(int i = 0 ; i < n ; ++i){
if(v[i] > x)return k + 1;
if(s + v[i] <= x){
s += v[i];
}
else{
s = v[i];
++t;
}
}
return t;
}