Pagini recente » Cod sursa (job #2126594) | Cod sursa (job #1759402) | Cod sursa (job #1210236) | Cod sursa (job #2660339) | Cod sursa (job #2889597)
#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];
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] <= c[d[dr]] + S*(i-d[dr]))
dr--;
d[++dr]=i;
if(i-d[st] == T+1) st++;
sol+=(c[d[st]] + S*(i-d[st])) * p[i];
}
fout<<sol;
return 0;
}