Cod sursa(job #2637729)

Utilizator AlexandruabcdeDobleaga Alexandru Alexandruabcde Data 24 iulie 2020 15:57:35
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <deque>

using namespace std;

ifstream f ("deque.in");
ofstream g ("deque.out");

constexpr int NMAX = 5e6 + 5;

deque <int> D;

int N, K;
int a[NMAX];

long long sol;

int main()
{
    f >> N >> K;

    for (int i = 1; i <= N; ++ i ) {
        f >> a[ i ];

        if (D.front() <= i - K) D.pop_front();

        while (!D.empty() && a[D.back()] > a[ i ]) {
            D.pop_back();
        }

        D.push_back( i );

        if (i >= K) {
            sol = sol + 1LL * a[D.front()];
        }
    }

    g << sol << '\n';
    return 0;
}