Pagini recente » Cod sursa (job #2299683) | Cod sursa (job #1610567) | Cod sursa (job #2354113) | Cod sursa (job #496259) | Cod sursa (job #3126203)
#include <iostream>
#include <fstream>
#include <deque>
std::ifstream f("branza.in");
std::ofstream g("branza.out");
int main(){
int n, t, s;
long long c, p, cTotal = 0;
std::deque<std::pair<long long, long long>> deq;
f >> n >> s >> t;
for(int i = 0; i < n; i++){
if(!deq.empty() && i > deq.front().second + t)
deq.pop_front();
f >> c >> p;
while(!deq.empty() && (s * (i - deq.back().second) + deq.back().first) >= c)
deq.pop_back();
deq.push_back({c, i});
cTotal += (s * p * (i - deq.front().second) + p * deq.front().first);
}
g << cTotal;
f.close();
g.close();
return 0;
}