Pagini recente » Cod sursa (job #2921026) | Cod sursa (job #2923159) | Cod sursa (job #3219336) | Cod sursa (job #2898152) | Cod sursa (job #3170813)
#include <bits/stdc++.h>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
int main() {
long long n,t,s;
in>>n>>s>>t;
deque <int> dq;
vector <int> cost(n+1);
long long sum=0;
for(int i=0;i<n;i++)
{
long long cnt;
in>>cost[i]>>cnt;
if(!dq.empty() && dq.front()==i-t){
dq.pop_front();
}
while(!dq.empty() && cost[i]<=cost[dq.back()]+(i-dq.back())*s)
{
dq.pop_back();
}
if(!dq.empty())
{
sum+=cnt*cost[dq.back()]+(i-dq.back())*s*cnt;
}
else{
sum+=cnt*cost[i];
}
dq.push_back(i);
}
out<<sum;
return 0;
}