Pagini recente » Cod sursa (job #2874189) | Monitorul de evaluare | Cod sursa (job #664120) | Cod sursa (job #538714) | Cod sursa (job #1760080)
#include <bits/stdc++.h>
typedef long long var;
const int NMAX = 16005;
const var EMAX = 1e10;
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int V[NMAX],K,n;
var Greedy(var C){
var S = 0,k = 0;
for(int i = 1; i <= n; i++){
S += V[i];
if(S > C){
S = V[i];
k++;
}
}
return k + 1;
}
var Binary(var L, var R){
if(L == R)
return L;
var C = (L + R)/2;
int k = Greedy(C);
if(k <= K)
return Binary(L, C);
else
return Binary(C + 1, R);
}
int main()
{
ios :: sync_with_stdio(false);
fin.tie(NULL);
fin >> n >> K;
int MAX;
for(int i = 1; i <= n; i++){
fin >> V[i];
MAX = max(V[i],MAX);
}
fout << Binary(MAX,EMAX);
return 0;
}