Pagini recente » Cod sursa (job #720660) | Cod sursa (job #2589092) | Cod sursa (job #1802537) | Cod sursa (job #1362388) | Cod sursa (job #2889031)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int main()
{
deque < long long int > branza;
long long int suma = 0;
long long int n, s, t;
fin>>n>>s>>t;
long long int cost[n], cant[n];
for(long long int i = 0; i < n; i++)
fin>>cost[i]>>cant[i];
for(long long int i = 0; i < n; i++){
while(!branza.empty() && cost[i] <= cost[branza.back()] + s * (i-branza.back())){
branza.pop_back();
}
branza.push_back(i);
suma = suma + cant[i] * (cost[branza.front()] + s * (i - branza.front()));
while(i - branza.front() > t){
branza.pop_front();
}
}
fout<<suma;
return 0;
}