Cod sursa(job #2885376)

Utilizator T_george_TGeorge Teodorescu T_george_T Data 5 aprilie 2022 21:55:13
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <deque>
#include <fstream>


using namespace std;

const int NMAX=1e5+3;

ifstream in("branza.in");
ofstream out("branza.out");

deque<long long>dq;

pair<long long,long long> v[NMAX];

int main() {
    long long n,k,t,ans=0;
    in>>n>>k>>t;
    for(int i=0;i<n;i++)
        in>>v[i].first>>v[i].second;
    for(int i=0;i<n;i++){
        while(!dq.empty() && dq.back()<i-t)
            dq.pop_back();
        while(!dq.empty() && v[i].first<v[dq.front()].first+(i-dq.front())*k)
            dq.pop_front();
        dq.push_front(i);
        ans+=(v[dq.back()].first+(i-dq.back())*k)*v[i].second;
    }
    out<<ans;
    return 0;
}