Pagini recente » Cod sursa (job #1122998) | Cod sursa (job #2858083) | Cod sursa (job #1401472) | Cod sursa (job #1386228) | Cod sursa (job #2551044)
#include <iostream>
#include <fstream>
#define LEN 100005
using namespace std;
ifstream fin ("branza.in");
ofstream fout ("branza.out");
long long n, s, t, st, dr, sol;
long long c[LEN], p[LEN], d[LEN];
long long cost(int i, int j){
return c[d[j]] + s*(i-d[j]);
}
int main (){
fin>>n>>s>>t;
for(int i=1; i<=n; i++)
fin>>c[i]>>p[i];
d[1]=1, st=1, dr=1;
sol+=c[1]*p[1];
for(int i=2; i<=n; i++){
while(st <= dr && c[i] <= cost(i,dr))
dr--;
d[++dr]=i;
if(i-d[st] == t+1) st++;
sol+=cost(i,st) * p[i];
}
fout<<sol;
return 0;
}