Cod sursa(job #370011)

Utilizator Andrei200Andrei200 Andrei200 Data 29 noiembrie 2009 23:17:54
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <cstring>

#define file_in "branza.in"
#define file_out "branza.out"

#define Nmax 101001
#define Inf 10000000000000000LL

long long n,m[Nmax],s,t,i,j,minim,c[Nmax],p[Nmax];
long long suma;

inline long long min(long long a, long long b) { return a<b?a:b; }
inline long long abs(long long a) { return a>=0?a:-a; }

int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%lld %lld %lld", &n, &s, &t);
	for (i=1;i<=n;++i)
		 scanf("%lld %lld", &c[i], &p[i]);
	
	for (i=1;i<=n;++i)
	{
		minim=Inf;
		for (j=1;j<=t;++j)
			 if (abs(i-j)<=t)
				  minim=min(minim,c[j]+abs(i-j)*s);
		m[i]=minim;
	}
	
	suma=0;
	for (i=1;i<=n;++i)
		 suma+=p[i]*m[i];
	
	printf("%lld\n", suma);
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}