Cod sursa(job #422889)

Utilizator marian77ivan marian liviu marian77 Data 23 martie 2010 12:06:23
Problema Transport Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <stdio.h>
int i,n,v[16001],c,k,dr,t,s,st;
int main() {
	FILE *f=fopen("transport.in","r");
	FILE *g=fopen("transport.out","w");
	fscanf(f,"%d%d",&n,&c);
	for(i=1;i<=n;i++) {
		fscanf(f,"%d",&v[i]);
		if(v[i]>st)
			st=v[i];
		dr+=v[i];
	}
	while(st<=dr) {
		k=(st+dr)/2;
		for(i=1;i<=n;i++)
			if(t+v[k]<k)
				t+=v[i];
			else {
				t=0;
				c--;
			}
		if(c<=0)
			st=k+1;
		else {
			s=k;
			dr=k-1;
		}
	}
	fprintf(g,"%d",s);
	return 0;
}