Cod sursa(job #3127506)

Utilizator raluca_rRadu Raluca raluca_r Data 7 mai 2023 16:01:27
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

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

deque< pair<long,int> > b;
long  N,S,T,C,P,c;
int main()
{

   fin>>N>>S>>T;
   fin>>C>>P;

   b.push_back({C,0});
   c= c+P*b[0].first;

   for(long i = 1; i < N; i++)
   {
        fin>>C>>P;
        if (b.front().second + T < i)
            b.pop_front();
        while(!b.empty() && (S * (i - b.back().second) + b.back().first) >= C)
        	{
        	    b.pop_back();
        	}
        b.push_back({C, i});
        c = c + P * b.front().first + S*P*(i-b.front().second);
    }

    fout<<c;
    fin.close();
    fout.close();

    return 0;
}