Pagini recente » Cod sursa (job #1001717) | Cod sursa (job #978556) | Cod sursa (job #2208600) | Cod sursa (job #2278696) | Cod sursa (job #2732347)
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream fi("branza.in");
ofstream fo("branza.out");
long long n, s, t;
int main() {
long long c, p;
vector <pair <long long, long long>> vect;
deque <long long> deq;
fi >> n >> s >> t;
long long suma = 0;
for (long long i = 0; i < n; i++) {
fi >> c >> p;
vect.push_back(pair <long long,long long>(c, p));
while (deq.empty() == 0 && i - deq.front() - 1 == t) {
deq.pop_front();
}
while (deq.empty() == 0 && c <= vect[deq.back()].first + (i - deq.back()) * s) {
deq.pop_back();
}
deq.push_back(i);
suma += (vect[deq.front()].first + (i - deq.front()) * s) * p;
}
fo << suma;
return 0;
}