Pagini recente » Cod sursa (job #2406638) | Cod sursa (job #3162221) | Cod sursa (job #3159384) | Cod sursa (job #563004) | Cod sursa (job #407307)
Cod sursa(job #407307)
#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);
}