Pagini recente » Cod sursa (job #1915756) | Cod sursa (job #3148478) | Cod sursa (job #2366539)
#include <iostream>
#include <cstdio>
using namespace std;
int v[16001];
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int N,i,K,s,maxx,st,dr,m,a,k;
cin>>N>>K;
s=0;
maxx=-1;
for(i=1;i<=N;i++){
cin>>v[i];
s+=v[i];
if(v[i]>maxx)
maxx=v[i];
}
st=maxx;
dr=s;
a=16001;
while(st<=dr){
m=(st+dr)/2;
k=0;
i=1;
while(i<=N){
s=0;
while(s+v[i]<=m){
s+=v[i];
i++;
}
k++;
}
if(k<=a && k<=K)
a=m;
if(m==st)
st++;
else
dr=m-1;
}
cout<<a;
return 0;
}