Cod sursa(job #2888451)

Utilizator tiberiusss26Titiriga Tiberiu Nicolae tiberiusss26 Data 11 aprilie 2022 13:18:05
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <deque>

using namespace std;

int main(){
    ifstream f ("branza.in");
    ofstream g("branza.out");
    long long N,S,T;
    f>>N>>S>>T;
    deque<pair<long long,long long>> deque;
    long long cost, cant, minim=0;
    for(int i =0;i<N;i++){
        f>>cost>>cant;
        while(!deque.empty() && cost<= deque.back().second + S*(i - deque.back().first) )
            deque.pop_back();
        deque.push_back(make_pair(i,cost));
        if(deque.front().first < i - T)
            deque.pop_front();
        minim += cant*(deque.front().second + S*(i-deque.front().first));
    }

    g<<minim;
}