Cod sursa(job #2888012)

Utilizator raskyNichita Sincarenco rasky Data 10 aprilie 2022 16:24:30
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

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

long long saptamani, cost, cantitate_sapt, pretdep, expira, productie[10000001];
deque<long long> branza;

int main()
{
    fcin >> saptamani >> pretdep >> expira;

    for(int sapt = 1; sapt <= saptamani; sapt++ )
    {
        fcin>>productie[sapt]>>cantitate_sapt;
        
        while( branza.empty() != 1 && branza.front() < sapt - expira )
            branza.pop_front(); //* scoatem branza expirata din depozit

        while( branza.empty() != 1 && ((sapt - branza.back())*pretdep + productie[branza.back()]) > productie[sapt] )
            branza.pop_back(); //* verificam daca e mai rentabil sa lasam la pastrat sau sa producem

        //while( branza.empty() != false && )

        branza.push_back(sapt);
        cost += cantitate_sapt * ((sapt - branza.front()) * pretdep + productie[branza.front()] );
    }
    fcout<<cost;
    return 0;
}