Cod sursa(job #2729058)

Utilizator Teo_1101Mititelu Teodor Teo_1101 Data 24 martie 2021 01:11:21
Problema Branza Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <deque>

#define v first
#define s second

using namespace std;

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

int N, K, T;
int c, p;
long long S;

deque < pair < int, int > > B;

void Solve()
{
    fin >> N >> K >> T;

    for( int i = 1; i <= N; ++i )
    {
        fin >> c >> p;

        while( !B.empty() && (i - B.front().s) > T)
            B.pop_front();


        while( !B.empty() && B.back().v + (i - B.front().s) * K >= c )
            B.pop_back();

        B.push_back( {c,i} );
        S += 1LL * (B.front().v + (i - B.front().s) * K ) * p;
    }

    fout << S;
}
int main()
{
    Solve();
    return 0;
}