Cod sursa(job #3128008)

Utilizator Farcasi_George_OctavianFarcasi George Octavian Farcasi_George_Octavian Data 8 mai 2023 10:33:42
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <deque>
int main()
{
    std::fstream f ("branza.in");
    std::ofstream g ("branza.out");
    long v[100000], n,s,t,cantitate,pret_minim=0;
    std::deque <int> d;
    f>>n>>s>>t;
    for(int i=1;i<=n;i++){
        f>>v[i]>>cantitate;
        while(!d.empty() && v[i]<v[d.back()] + s*(i-d.back())) //verific daca merita sa o tin
            d.pop_back();
        d.push_back(i);
        if(!d.empty() && i-d.front()>t)    //verific termenul branzei depozitate
            d.pop_front();
        pret_minim=pret_minim+cantitate*(v[d.front()]+s*(i-d.front()));
        //      pretul curent+cantitatea*(costul de productie+chiria*nr_de_zile_depozitate)
    }
    g<<pret_minim;

    f.close();
    g.close();
    return 0;
}