Cod sursa(job #2732277)

Utilizator Pop_MariaPop Maria Pop_Maria Data 28 martie 2021 20:53:05
Problema Deque Scor 100
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

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

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

int main()
{
        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;
}