Pagini recente » Cod sursa (job #1984378) | Cod sursa (job #1516600) | Cod sursa (job #314173) | Cod sursa (job #985822) | Cod sursa (job #681494)
Cod sursa(job #681494)
#include <cstdio>
using namespace std;
long long dr=2000000000ll,st=1,mj,sol;
int n , k , logic=0,a[16005],ult,i;
bool merge(int c){
long long sum=0;long long transp=0;
int i;
for(i=1;i<=n;i++){
sum+=a[i];
if(sum>=c){
transp++;
sum=0;
if(transp>k){
return false;
i=n+1;
}
}
}
if(transp<k)
return true;
}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
while((st<=dr)&&(logic!=1)){
mj=(st+dr)/2;
if(merge(mj)!=0){
dr=st-1;
ult=1;
}
else{
st=mj+1;
if(ult==1){
logic=1;
sol=mj;
}
}
}
}
printf("%lld",sol);
}