Cod sursa(job #2888657)

Utilizator AnaTurcituTurcitu Ana-Maria AnaTurcitu Data 11 aprilie 2022 18:26:27
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <deque>

std::ifstream f("branza.in");
std::ofstream g("branza.out");

long long N, S, T, c[100001], p[100001], cost=0;
std::deque<long long>x;

int main()
{
    long long i;
    f >> N >> S >> T;
    for(i=1; i<=N; i++)
        f >> c[i] >> p[i];


    for(i=1; i<=N; i++)
    {
        while(x.empty()==0 && x.front() + T < i)
            x.pop_front();

        while(x.empty()==0 && c[x.back()]+S*(i - x.back()) > c[i])
            x.pop_back();

        x.push_back(i);

        cost += p[i]*(c[x.front()]+(i-x.front())*S);
    }

    g<<cost;
}