Cod sursa(job #2732265)

Utilizator Pop_MariaPop Maria Pop_Maria Data 28 martie 2021 20:46:34
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#define maxn 5000010

using namespace std;

long long n, k, i;
long long date[maxn], deque1[maxn];
long long front1, back1;
long long suma;

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

    fin >> n >> k;

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

    front1 = 1;
    back1 = 0;

    for(i = 1; i <= n; i++)
    {
        while(front1 <= back1 && date[i] <= date[deque1[back1]])
            back1 --;

        deque1[++back1] = i;

        if(deque1[front1] == i - k)
            front1 ++;

        if(i >= k)
            suma += date[deque1[front1]];
    }

    fout << suma << '\n';
    return 0;
}