Cod sursa(job #2889518)

Utilizator NicuDirvaDirva Nicolae NicuDirva Data 12 aprilie 2022 21:05:45
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb

#include <iostream>
#include <fstream>

using namespace std;

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

int v[5000010]={}, dq[5000010]={};

int main()
{
    int n, k, i, front=1, back=0;
    long long suma=0;

    fin>>n;
    fin>>k;

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

    for(i=1;i<=n;i++)
    {
        while(front <= back && v[i] <= v[dq[back]])
            back--;

        back++;

        dq[back] = i;

        if(dq[front] ==i-k)
            front++;

        if(i >= k)
            suma += v[dq[front]];
    }

    fout<<suma;

    fin.close();
    fout.close();

    return 0;

}