Cod sursa(job #2886894)

Utilizator AndreiBerbecaruBerbecaru-Iovan Andrei AndreiBerbecaru Data 8 aprilie 2022 16:05:41
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<deque>
using namespace  std;
ifstream fin("branza.in");
ofstream fout("branza.out");

deque<int> dcoada;
long long n, k, pdepozit, texpir, cprodus[10000001], cantcumparare, i, cost;


int main(){

    fin>>n>>pdepozit>>texpir;

    for(i=1; i<=n; i++){
        fin>>cprodus[i]>>cantcumparare;

        while(!dcoada.empty() && i-texpir > dcoada.front())
            dcoada.pop_front();

        while(!dcoada.empty() && cprodus[dcoada.back()] + (i-dcoada.back())*pdepozit > cprodus[i])
            dcoada.pop_back();

        dcoada.push_back(i);

        cost += cantcumparare * (cprodus[dcoada.front()] + pdepozit*(i-dcoada.front()));
    }

    fout<<cost;
    return 0;
}