Cod sursa(job #95559)

Utilizator znakeuJurba Andrei znakeu Data 29 octombrie 2007 14:37:55
Problema Branza Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
long long c[100001],p[100001],min[100001];
int main()
{
	long long n=0,s=0,t=0,i=0,j=0,temp=0,sum=0;
	
	FILE *in  = fopen ("branza.in","r");
	FILE *out = fopen ("branza.out","w");
	
	fscanf(in,"%lld%lld%lld",&n,&s,&t);
	
	for (i=0; i<n; i++)
		fscanf(in,"%lld%lld",&c[i],&p[i]);
	
	fclose(in);
	
	for (i=0; i<n; i++)
	{
		if (min[i]==0 || min[i]>c[i]*p[i])
				min[i]=c[i]*p[i];			
		for (j=i+1, temp=s; j<n && j<=i+t; j++, temp+=s)
			if (min[j]==0 || min[j]>c[i]*p[j]+p[j]*temp)
				min[j]=c[i]*p[j]+p[j]*temp;			
	}
	
	for (i=0, sum=0; i<n; i++)
		sum+=min[i];
	
	fprintf(out,"%lld\n",sum);
	
	fclose(out);
	
	return 0;
}