Pagini recente » Cod sursa (job #1512977) | Cod sursa (job #2026401) | Cod sursa (job #2391736) | Istoria paginii runda/concurnfo | Cod sursa (job #2074061)
#include<iostream>
#include<stdio.h>
using namespace std;
int v[16001];
int main(){
int maxi=0,s=0,n,k,i,l1,l2,pp,m,c=0,cm;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
cin>>n>>k;
for(i=1;i<=n;i++){
cin>>v[i];
if(v[i]>maxi)
maxi=v[i];
s=s+v[i];
}
l1=maxi;
l2=s;
pp=0;
while(l1<l2&&pp==0){
m=(l1+l2)/2;
c=1;
cm=m;
for(i=1;i<=n;i++){
if(cm>v[i])
cm=cm-v[i];
else{
cm=m;
cm=cm-v[i];
c++;
}
}
if(c<k)
l2=m-1;
if(c>k)
l1=m+1;
if(c==k)
pp=m;
}
cout<<m;
return 0;
}