Pagini recente » Cod sursa (job #422903) | Cod sursa (job #4293) | Cod sursa (job #74797) | Cod sursa (job #2096963) | Cod sursa (job #3127332)
#include <iostream>
#include <stack>
#include <deque>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int main() {
deque<int> deq;
vector<unsigned long long> p;
unsigned long long n,s,t,suma=0;
fin>>n>>s>>t;
p.resize(n+1);
for(unsigned long long i=1;i<=n;i++)
{
unsigned long long c;
fin>>p[i]>>c;
while(!deq.empty()&&i-deq.front()>t)
deq.pop_front();
while(!deq.empty()&&(p[deq.back()]+s*(i-deq.back()))>p[i])
deq.pop_back();
deq.push_back(i);
suma+=(s*(i-deq.front())+p[deq.front()])*c;
}
fout<<suma;
return 0;
}