Pagini recente » Cod sursa (job #447534) | Cod sursa (job #447537) | Cod sursa (job #2027554) | Cod sursa (job #856519) | Cod sursa (job #560191)
Cod sursa(job #560191)
#include<stdio.h>
FILE*fin,*fout;
long int n, k,k1,i,v[16001],min,t,u,p,m,nr,max,s;
int main(){
fin=fopen("transport.in","r");
fout=fopen("transport.out","w");
fscanf(fin,"%ld %ld",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%ld ",&v[i]);
if(v[i]>max){max=v[i];}
v[i]=v[i]+v[i-1];
}
u=max; p=v[n];
min=16001;
while(u<=p){
m=(u+p)/2;
k1=0; nr=0;
for(i=1;i<=n; ){
while(v[i]-v[k1]<=m&&i<=n){
i++;
}
nr++;
k1=i-1;
}
if(nr>k){u=m+1;}
else{
if(nr<=k){
min=m;p=m-1;
}
}
}
fprintf(fout,"%ld",min);
return 0;
}