Cod sursa(job #3368032)

Utilizator Andrei1209Andrei Mircea Andrei1209 Data 12 octombrie 2026 22:24:59
Problema Branza Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");

const int Nmax = 100000 + 5;
long long pret[Nmax], cantitate[Nmax];
int main()
{
    long long n, t, s, cost = 0, i;
    fin >> n >> s >> t;
    deque <int> deq;
    for ( i = 1; i <= n; ++i )
    {
        fin >> pret[i] >> cantitate[i];
        if ( !deq.empty() && deq.front() <= i - t )
            deq.pop_front();

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

        cost += (pret[deq.front()] + s * ( i - deq.front())) * cantitate[i];

    }
    fout << cost;
    return 0;
}