Pagini recente » Cod sursa (job #2469135) | Cod sursa (job #528624) | Cod sursa (job #2778997) | Cod sursa (job #3268224) | Cod sursa (job #3170833)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("branza.in");
ofstream fout ("branza.out");
int main()
{
int n,s,t;
fin>>n>>s>>t;
vector<int> cost(n);
long long cost_total=0;
t++;
deque<int> dq;
for (int i=0; i<n; i++)
{
int cantitate;
fin>>cost[i]>>cantitate;
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();}
dq.push_back(i);
cost_total+=(long long)cantitate*(cost[dq.front()]+(i-dq.front())*s);
}
fout<<cost_total;
return 0;
}