Cod sursa(job #2713985)

Utilizator galacticaBattlestar galactica Data 1 martie 2021 01:32:54
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
//
//  main.cpp
//  branza
//
//  Created by Ionut Bogdanescu on 01.03.21.
//

#include <deque>
#include <fstream>
using namespace std;

int main(){
    ifstream in("branza.in");
    ofstream out("branza.out");
    int N, T;
    long long S, result = 0;
    deque<long long> price, position;
    
    in >> N >> S >> T;
    for(int i = 0; i < N; ++i){
        long long c, p;
        in >> c >> p;
        while(!price.empty() && price.back() + S * (i - position.back()) >= c) {
            price.pop_back();
            position.pop_back();
        }
        price.push_back(c);
        position.push_back(i);
        
        result += p * (price.front() + S * (i - position.front()));
        if(position.front() <= i-T){
            price.pop_front();
            position.pop_front();
        }
    }
    
    out << result;
    return 0;
}