Cod sursa(job #500728)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 12 noiembrie 2010 22:40:02
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
FILE*fin,*fout;
long int n, k,k1, i, v[2000],min,t,u,p,m,nr;
 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]);
 k1=k1+v[i];



}
 u=v[1]; p=k1;
 min=16001;

 while(u<=p){
	m=(u+p)/2;t=0; nr=0;
	 for(i=1;i<=n;i++){
	 if(v[i]+t>=m||i==n){nr++;t=v[i];}
	     else{t=t+v[i];}



	 }
 if(nr>k){u=m+1;}
 if(nr<=k){
 if(m<min){min=m;p=m-1;}

 }


 }
fprintf(fout,"%ld",min);
return 0;
}