Pagini recente » Monitorul de evaluare | Cod sursa (job #830866) | Cod sursa (job #1557794) | Cod sursa (job #789941) | Cod sursa (job #1742531)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream cin("branza.in");
ofstream cout("branza.out");
deque<pair<int, int> > Deque;
int main() {
int n, s, t;
cin >> n >> s >> t;
long long answer = 0;
for (int i = 1; i <= n; i++) {
int c, p;
cin >> c >> p;
if (Deque.front().second < i - t)
Deque.pop_front();
while (!Deque.empty() && c <= (i - Deque.back().second) * s + Deque.back().first)
Deque.pop_back();
Deque.push_back(make_pair(c, i));
answer = answer + 1LL * p * ((i - Deque.front().second) * s + Deque.front().first);
}
cout << answer;
return 0;
}