Cod sursa(job #3127592)

Utilizator dianam2003Manolache Diana Elena dianam2003 Data 7 mai 2023 16:44:30
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <cmath>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");

int main() {

    long N, T, S, C, P, cnt;
    deque<pair <long,int> > brnz;

    cnt = 0;

    fin >> N >> S >> T >> C >> P;
    brnz.push_back({C,0});
    //Se adauga cantitatea din prima sapt
    cnt = cnt + P*brnz[0].first;

    for(int i = 1; i < N; i++)
    {
        fin>>C>>P;

        if (brnz.front().second + T < i)
            brnz.pop_front();

        while(!brnz.empty() && (S * (i - brnz.back().second) + brnz.back().first) >= C)
            brnz.pop_back();

        brnz.push_back({C, i});
        cnt = cnt + P * brnz.front().first + S*P*(i-brnz.front().second);
    }

    fout<<cnt;

    return 0;
}