Cod sursa(job #2646614)

Utilizator DormeoNoapte Buna Dormeo Data 1 septembrie 2020 16:20:42
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("deque.in");
ofstream fout ("deque.out");

const int DIM = 5000000 + 5;

int a[DIM], dq[DIM];

int main()
{
    int n, k, left = 1, right = 0;
    long long sum = 0;

    fin >> n >> k;
    for(int i = 1; i <= n; ++i) {
        fin >> a[i];

        int cnt = 0;
        while(a[i] <= a[dq[right]] && right >= left) --right;
        dq[++right] = i;
        if(dq[left] == i - k) ++left;
        if(i >= k) sum += 1LL * a[dq[left]];
    }
    fout << sum << "\n";
    return 0;
}