Pagini recente » Cod sursa (job #556092) | Cod sursa (job #2372209) | Cod sursa (job #2372116) | Cod sursa (job #794570) | Cod sursa (job #2729244)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f ("branza.in");
ofstream g ("branza.out");
int main()
{
int n, s, t;
f >> n >> s >> t;
int p, c;
deque<pair<pair<int,int>,int>> dq;
long long int total=0;
for (int i = 1; i <= n; i++){
f >> p >> c;
while (dq.size() && dq.back().first.first + (i-dq.back().second) *s > p)
dq.pop_back();
while (dq.size() && i-dq.front().second > t)
dq.pop_front();
dq.push_back({{p,c},i});
total += dq.front().first.first*c + c*(i-dq.front().second)*s;
}
g << total;
return 0;
}