Cod sursa(job #2732428)

Utilizator MihaiBirsanMihai Birsan MihaiBirsan Data 28 martie 2021 22:51:12
Problema Deque Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <bits/stdc++.h>
#include <deque>

#define maxn 5000010

using namespace std;

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

int N, K;
int v[maxn];
int f, b;
long long Sum;
deque<int> Deque;

int main()
{
    int i;
    fin>>N>>K;


    for (i = 1; i <= N; i++)
        fin>>v[i];

    f = 1, b = 0;

    for (i = 1; i <= N; i++)
    {
           while (f <= b && v[i] <= v[ Deque[b] ]) b--;
        Deque[++b] = i;

        if (Deque[f] == i-K) f++;

        if (i >= K) Sum += v[ Deque[f]];
    }

    fout<<Sum;

    return 0;
}