Pagini recente » Cod sursa (job #58282) | Cod sursa (job #2510916) | Cod sursa (job #131961) | Cod sursa (job #2965296) | Cod sursa (job #559977)
Cod sursa(job #559977)
#include<stdio.h>
FILE*fin,*fout;
long int v[2000],i,j,n,m,k,p,u,nr,c,min,max;
int main(){
fin=fopen("trans.in","r");
fout=fopen("trans.out","w");
fscanf(fin,"%ld %ld",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%ld",&v[i]);
}
p=v[1];
u=v[n];
int s=0;
min=16001;
int ok=1;
while(p<=u){
m=(p+u)/2;
nr=0; c=0;
ok=1;
for(i=1;i<=n;){
s=0; c=i;
while(s+v[i]<=m&&i<=n){
s=s+v[i];
i++;
}
nr++;
if(c==i){ok=0;break;}
}
if(ok==1){
if(nr>k){p=m+1;}
else {
if(nr<=k){
u=m-1; min=m;
}
}
}
if(ok==0){p=m+1;}
}
fprintf(fout,"%ld",min);
fclose(fin);
fclose(fout);
return 0;
}