Cod sursa(job #2725142)

Utilizator StarkillerCalin Stafie Starkiller Data 18 martie 2021 14:50:39
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#define NMAX 5000002

using namespace std;

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

int a[NMAX], deque1[NMAX];
long long suma;
int n, k, front1, back1;

int main()
{
    fin >> n >> k;
    front1 = 1;
    back1 = 0;
    for (int i = 0; i < n; ++i)
        {
            fin >> a[i];
            while(front1 <= back1 and a[i] < a[deque1[back1]])
                back1--;
            deque1[++back1] = i;
            if(deque1[front1] == i-k)
                front1++;

            if(i >= k-1)
                suma += a[deque1[front1]];
        }
    gout << suma;
    return 0;
}