Pagini recente » Cod sursa (job #1356857) | Profil NuSuntRoman | Cod sursa (job #2097705) | Monitorul de evaluare | Cod sursa (job #2885656)
#include <fstream>
#include <deque>
using namespace std;
int main() {
ifstream fin ("branza.in");
int n,s,t;
int result = 0;
fin >> n >> s >> t;
deque<int> branza;
int q, cost[1000001];
for(int i = 1; i <= n; ++i){
fin >> cost[i] >> q;
// Expirat
while(!branza.empty() && branza.front() < i - t)
branza.pop_front();
// Rentabilitate
while(!branza.empty() && cost[branza.back()] + (i - branza.back()) * s > cost[i])
branza.pop_back();
branza.push_back(i);
result += q * (cost[branza.front()] + (i - branza.front()) * s);
}
fin.close();
ofstream fout("branza.out");
fout << result << "\n";
fout.close();
return 0;
}