Cod sursa(job #2557303)

Utilizator KPP17Popescu Paul KPP17 Data 25 februarie 2020 18:42:33
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#define fisier "deque"

#ifdef consola

    #include <iostream>
    #define in std::cin
    #define out std::cout

#else

    #include <fstream>

    #ifndef fisier
        #define fisier "HYPER"
    #endif

    std::ifstream in(fisier ".in");
    std::ofstream out(fisier ".out");

#endif



const int MAX_N = 5000000;

struct Poz {int val, idx;};

struct Deq {

    Poz v[MAX_N], *p = v, *u = v - 1;

    inline bool gol() {return p > u;}

    void print(char msj[]) {out << msj << "["; for (Poz* poz = p; poz <= u; poz++) out << poz->val << ", "; out << "]\n";}

} deq_min, deq_max;



int main() {

    int n, k, val, suma = 0;

    in >> n >> k;

    for (int i = 0; i < n; i++) {

        in >> val;

        while (!deq_min.gol() && deq_min.u->val >= val) deq_min.u--;

        *++(deq_min.u) = {val, i};

        if (deq_min.u->idx - deq_min.p->idx == k) deq_min.p++;



        if (i >= k - 1) {

            suma += deq_min.p->val;

        }

    }

    out << suma;

}






















//