Pagini recente » Cod sursa (job #2732716) | Cod sursa (job #2595937) | Cod sursa (job #2525007) | Cod sursa (job #3252735) | Cod sursa (job #2729291)
#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<long long,long long>,long long>> 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();
if (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;
}