Cod sursa(job #407309)

Utilizator xtephanFodor Stefan xtephan Data 2 martie 2010 11:12:32
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<stdio.h>
#include<algorithm>
#define INF 0x3f3f3f3f

using namespace std;

long n,S,T;
long long C[100002], P[100002];
long long L[100002];
bool produs[100002];

void cit();
void rez();
void afis();

int main() {
	
	freopen("branza.in", "r", stdin);
	freopen("branza.out", "w", stdout);
	
	cit();
	rez();
	afis();
	
	return 0;
}


void cit() {
	scanf("%ld%ld%ld", &n,&S,&T);
	
	for(int i=1; i<=n; i++)
		scanf("%ld%ld", &C[i], &P[i]);
}


void rez() {
	
	long i,j;
	
	//L[1]=INF;
	
	L[1]=C[1];
	produs[1]=true;
	
	for(i=2; i<=n; i++) {
		
	
		L[i]=C[i];
		produs[i]=true;
		
		/*
		for(long k=1; k<=T && i-k>=1; k++)
			if( L[i] > C[i-k]+k*S && produs[i-k] ) {
				L[i] = C[i-k]+k*S;
				produs[i]=false;
			}
		*/
		/*
		for(long k=0; k<=T && i-k>=1; k++)
			L[i]=min( (C[i-k]+k*S), L[i]);
		*/
		
		/*
		for(j=i; j>=i-T && j>=1; j--) {
			L[i]=min(C[j]+(i-j)*S, L[i]);
		}
		*/
		/*
		j=i;
		
		while( (i-j)<=T && j>=1) {
			L[i]=min( (C[j]+(i-j)*S), L[i]);
			j--;
		}
		*/
		

	}
	
}


void afis() {
	long long tot=0;
	
	for(long i=1; i<=n; i++)
		tot+=P[i]*L[i];
	
	printf("%ld", tot);
}