Cod sursa(job #2889416)

Utilizator NicuDirvaDirva Nicolae NicuDirva Data 12 aprilie 2022 19:06:19
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

ifstream fin("branza.in");
ofstream fout("branza.out");


int main()
{
long long n, s, t, i, pret_zilnic[100000] = {}, cantitate, cost_total = 0;
deque <long> dq;

fin>>n;
fin>>s;
fin>>t;

for(i = 1; i <= n; i++)
{
    fin>>pret_zilnic[i]>>cantitate;

    while(!dq.empty() && dq.front() < i - t)
            dq.pop_front();

    while(!dq.empty() && pret_zilnic[dq.back()] + (i - dq.back()) * s > pret_zilnic[i])
        dq.pop_back();
    dq.push_back(i);

    cost_total = cost_total + (cantitate * (pret_zilnic[dq.front()] + (i - dq.front()) * s));
}
fout<<cost_total;
return 0;
}