Cod sursa(job #3127176)

Utilizator Cipy34Harnagea Ciprian Cipy34 Data 7 mai 2023 13:11:50
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
using namespace std;

int main()
{
    ifstream fin("branza.in");
    ofstream fout("branza.out");
    long long n, s, t, cost = 0;
    deque <long long> d;
    fin>>n>>s>>t;

    vector <long long> c(n+2), p(n+2);
    for(int i = 1; i <= n; i++)
        fin>>c[i]>>p[i];

    for(int i = 1; i <= n; i++){

        while(d.empty() == false &&
              (c[d.back()] + s*(i - d.back())) > c[i])
            d.pop_back();

        d.push_back(i);

        while(d.empty() == false && i-d.front() > t)
            d.pop_front();

        cost = cost + p[i] * c[d.front()] + s*p[i]*(i-d.front());
    }
    fout<<cost;
    fin.close();
    fout.close();
    return 0;
}