Cod sursa(job #2623321)

Utilizator AvramDanielAvram Daniel AvramDaniel Data 2 iunie 2020 22:36:50
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include<iostream>
#include<fstream>
using namespace std;

int n,k,a[5000010], deq[5000010],ans;

int main(){

    ifstream cin("deque.in");
    ofstream cout("deque.out");

    cin>>n>>k;
    int back = 0;
    int front = 1;
    long long ans = 0;

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

    for(int i = 1;i<=n;i++){
        while(front<=back && a[i] <= a[deq[back]])
            back--;
        deq[++back] = i;
        if(i - k == deq[front]) front++;
        if(i >= k){
            ans+=a[deq[front]];
        }
    }
    cout << ans;
    return 0;
}