Pagini recente » Cod sursa (job #2441573) | Cod sursa (job #2705915) | Cod sursa (job #578594) | Cod sursa (job #2369188) | Cod sursa (job #2089220)
#include<iostream>
#include<stdio.h>
using namespace std;
int v[16000];
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,st,s,dr,i,tk,mij,j;
cin>>n>>k;
for(i=1;i<=n;i++)
cin>>v[i];
st=1;
dr=16000;
while(st<dr){
mij=(st+dr)/2;
tk=1;
s=0;
for(i=1;i<=n;i++){
s+=v[i];
if(s>mij){
tk++;
s=v[i];
}
}
if(k==tk){
break;
}
if(k<tk)
st=mij+1;
if(k>tk)
dr=mij-1;
}
for(j=mij-1;j>=1;j--){
s=0;
tk=1;
for(i=1;i<=n;i++){
s+=v[i];
if(s>j){
tk++;
s=v[i];
}
}
if(k<tk){
cout<<j+1;
break;
}
}
return 0;
}