Cod sursa(job #2729030)

Utilizator Teo_1101Mititelu Teodor Teo_1101 Data 23 martie 2021 23:57:42
Problema Branza Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <queue>

#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;

queue < pair < int, int > > B;

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

    int cost;

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

        while( !B.empty() )
        {
            if( i - B.front().s <= T && B.front().v + (i - B.front().s) * K < cost)
            {
                cost = B.front().v + (i - B.front().s) * K;
                break;
            }
            B.pop();
        }
        B.push( {c,i} );
        S += 1LL*cost*p;
    }

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