Pagini recente » Cod sursa (job #3360743) | Cod sursa (job #3360609) | Cod sursa (job #3359931) | Cod sursa (job #3360730) | Cod sursa (job #3360482)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, k ;
int v[16001];
bool valid(int mij) {
int cmij = mij, tr = 1 ;
for(int i = 1 ; i <= n ; i++) {
if(v[i] < mij){
mij -= v[i] ;
}
else {
tr++;
mij = cmij - v[i] ;
}
}
if(tr <= k) {
return true ;
}
else{
return false ;
}
}
int BSize(int s, int maxi) {
int mij, st, dr ;
st = maxi - 1 ;
dr = s ;
while(dr - st > 1) {
if(valid(mij)) {
dr = mij ;
}
}
return dr ;
}
int main()
{
int n, k, maxi = -1, s = 0, st, dr ;
cin >> n >> k ;
for(int i = 1 ; i <= n ; i++) {
cin >> v[i] ;
if(v[i] > maxi) {
maxi = v[i] ;
}
s += v[i] ;
}
cout << BSize(s, maxi) ;
return 0;
}