Pagini recente » Cod sursa (job #3039380) | Cod sursa (job #2531998) | Cod sursa (job #1559248) | Cod sursa (job #2028380) | Cod sursa (job #1667359)
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,v[16001],i,c,j,s,minn,ss,l1,l2,pr;
cin>>n>>k;
minn=16002;
ss=0;
for(i=1;i<=n;i++){
cin>>v[i];
ss=ss+v[i];
if(v[i]<minn)
minn=v[i];
}
l1=minn;
l2=ss;
while(l1<=l2){
i=(l1+l2)/2;
c=0;
j=1;
pr=0;
if(v[1]<=i){
while(j<=n){
s=0;
while(s<=i){
s=s+v[j];
j++;
}
j--;
c++;
}
}
else
pr++;
if(pr==1)
l1=i+1;
else{
if(c>k)
l1=i+1;
else
l2=i-1;
}
}
cout<<i;
return 0;
}