Cod sursa(job #2938399)

Utilizator andiRTanasescu Andrei-Rares andiR Data 12 noiembrie 2022 00:52:24
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>

#define Nmax 5000000
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");

int n, k, front, back, size;
int v[Nmax], q[Nmax];
long long sum=0;
int main()
{
    fin>>n>>k;
    for (int i=0; i<n; i++)
        fin>>v[i];
    for (int i=0; i<k-1; i++){
        while (size!=0 && v[q[back-1]]>=v[i]){
            back--; size--;
        }
        if (size!=0 && q[front]+k==i){
            front++; size--;
        }
        q[back++]=i;
        size++;
    }
    for (int i=k-1; i<n; i++){
        while (size!=0 && v[q[back-1]]>=v[i]){
            back--; size--;
        }
        if (size!=0 && q[front]+k==i){
            front++; size--;
        }
        q[back++]=i;
        size++;
        sum+=v[q[front]];
    }
    fout<<sum;
    return 0;
}