Cod sursa(job #3125664)

Utilizator DevCrutCorolevschi Mihai DevCrut Data 4 mai 2023 01:23:37
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,f16c,fma,sse3,ssse3,sse4.1,sse4.2") 

#include <iostream>
#include <fstream>
#include <stack>

using namespace std;

int maxLen;
stack<pair<int,char>> st;

ifstream myIn("branza.in");
ofstream myOut("branza.out");

long long cost[100000];
long long indexs[100000];
long long sum;

int main() {
    long long n, s, t, c, p;
    long long start = 0, end = 0;
    myIn >> n >> s >> t;

    myIn >> c >> p;
    cost[0] = c;
    indexs[0] = 0;
    sum += c * p;

    for (long long i = 1; i < n; ++i) {
        myIn >> c >> p;
        cost[i] = c;

        if ((i - indexs[start]) == (t + 1))
            start++;

        for (long long index = end; index >= start; --index) {
            long long todayCost = (i - indexs[index]) * s + cost[indexs[index]];
            if (cost[i] <= todayCost)
                --end;
            else
                break;
        }

        ++end;
        indexs[end] = i;
        long long newIndex = indexs[start];
        long long finalCost = (i - newIndex) * s + cost[newIndex];
        sum += finalCost * p;
    }
    myOut << sum;
}

/*
(({}])
*/