Cod sursa(job #2889029)

Utilizator Andoss1710Balanica Andrei Andoss1710 Data 12 aprilie 2022 05:13:29
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

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

int main()
{
    deque < long long int > branza;
    long long int suma = 0;
    long long int n, s, t;
    fin>>n>>s>>t;
    long long int cost[n], cant[n];
    for(long long int i = 0; i < n; i++)
        fin>>cost[i]>>cant[i];
    for(long long int i = 0; i < n; i++){
        while(!branza.empty() && cost[i] <= cost[branza.back()] + s * (i-branza.back())){
            branza.pop_back();
        }
        branza.push_back(i);
        suma = suma + cant[i] * (cost[branza.front()] + s * (i - branza.front()));
        if(i - branza.front() > t){
            branza.pop_front();
        }
    }
    fout<<suma;

}