Pagini recente » Cod sursa (job #2181301) | Cod sursa (job #501114) | Cod sursa (job #2277554) | Cod sursa (job #1604247) | Cod sursa (job #2556039)
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int v[16000];
int lol(int nr, int n, int k){
int s=0, tr=0;
for(int i=1; i<=n; i++){
if(v[i]>nr){
return k+1;
}
if(v[i]+s<=nr){
s+=v[i];
}
else{
tr++;
s=v[i];
}
}
return tr+1;
}
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
int n,k,st,mij,x;
cin>>n>>k;
for(int i=1; i<=n; i++){
cin>>v[i];
// lol(nr, n, k);
}
st=1;
long long dr=256000000;
while(st<=dr){
mij=(st+dr)/2;
if(lol(mij,n,k)<=k){
dr=mij-1;
x=mij;
}
else
st=mij+1;
}
cout<<x<<endl;
return 0;
}