Cod sursa(job #483853)

Utilizator cat_red20Vasile Ioana cat_red20 Data 10 septembrie 2010 14:37:32
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
int n,k,min,i,v[16001],a,b,j,t,s,tm,nr,m;
FILE *fin,*fout;
int main(){
	fin=fopen("transport.in","r");
	fout=fopen("transport.out","w");
	fscanf(fin,"%d %d",&n,&k);
	for(i=1;i<=n;i++){
		fscanf(fin,"%d",&v[i]);
		if(v[i]>a){a=v[i];}
		b+=v[i];
	}
	a=(b-b%k)/k;
	while(a<=b){
		m=(a+b)/2;
		t=0;
		for(nr=1;nr<=n;){
			s=0;
			while(s+v[nr]<=m && nr<=n){
				s+=v[nr];
			    nr++;
			}
			t++;
		}
		if(t<=k){
			b=m-1;
	        tm=m;
		}
		else a=m+1;
		
	}
	fprintf(fout,"%d",tm);
	fclose(fin);
	fclose(fout);
return 0;}