Pagini recente » Cod sursa (job #1699899) | Cod sursa (job #2338035) | Cod sursa (job #1419467) | Cod sursa (job #684131) | Cod sursa (job #2761309)
#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;
int main(){
int n,s,t;
fin>>n>>s>>t;
for(int i=1;i<=n;i++){
fin>>c[i]>>p[i];
}
int 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+=(c[dq.front()]+(i-dq.front())*s)*p[i];
}
fout<<sol<<"\n";
return 0;
}