Cod sursa(job #1995299)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 27 iunie 2017 15:37:46
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<fstream>
#include<deque>
using namespace std;
ifstream fi("branza.in");
ofstream fo("branza.out");
deque<int> Q;
int n,s,t,i,p,C[100001];
long long rez;
int main()
{
    fi>>n>>s>>t;
    for(i=1; i<=n; i++)
    {
        fi>>C[i]>>p;
        C[i]=C[i]-i*s;
        if((!Q.empty()) && i-Q.front()>t)
            Q.pop_front();
        while((!Q.empty()) && C[Q.back()]>C[i])
            Q.pop_back();
        Q.push_back(i);
        rez=rez+1LL*(C[Q.front()]+i*s)*p;
    }
    fo<<rez<<"\n";
    fi.close();
    fo.close();
    return 0;
}