Pagini recente » Cod sursa (job #3000616) | Cod sursa (job #2770758) | Cod sursa (job #1192159) | Cod sursa (job #944297) | Cod sursa (job #2761518)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
const int nmax=100000;
int c[nmax+1], p[nmax+1];
deque <int> dq;
typedef long long int64;
int main(){
int n,s,t;
fin>>n>>s>>t;
for(int i=1;i<=n;i++){
fin>>c[i]>>p[i];
}
int64 sol=0;
for(int i=1;i<=n;i++){
while(dq.empty()==0&&c[dq.back()]+(i-dq.back())*s>c[i]){
dq.pop_back();
}
dq.push_back(i);
if(dq.front()<=i-t){
dq.pop_front();
}
sol+=int64((c[dq.front()]+(i-dq.front())*s)*p[i]);
}
fout<<sol<<"\n";
return 0;
}