Cod sursa(job #1708773)

Utilizator UPB_Darius_Rares_SilviuPeace my pants UPB_Darius_Rares_Silviu Data 27 mai 2016 22:17:17
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;

#define NMAX 5000005

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

int N, K, a[NMAX];
long long sol;
deque < int > Q;

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

        while (Q.size() && a[Q.back()] > a[i]) {
            Q.pop_back();
        }

        Q.push_back(i);
        if (Q.back() - Q.front() >= K) {
            Q.pop_front();
        }

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

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