Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/horendus | Istoria paginii utilizator/andreasantoniu | Monitorul de evaluare | Cod sursa (job #3127029)
#include <bits/stdc++.h>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
int n, s, t;
long long res;
int main(){
f >> n >> s >> t;
int c, p;
deque<pair<int, int>> dq;
for(int i = 1; i <= n; ++i){
f >> c >> p;
if(!dq.empty() && dq.front().second + t < i){
dq.pop_front();
}
while(!dq.empty() && (s * (i - dq.back().second) + dq.back().first) >= c){
dq.pop_back();
}
dq.push_back({c, i});
res += (p * dq.front().first + s * p * (i - dq.front().second));
}
g << res;
return 0;
}