Cod sursa(job #2720767)

Utilizator alexbrinzaAlexandru Brinza alexbrinza Data 11 martie 2021 11:40:38
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int nmax = 5000001;

int v[nmax], deq[nmax];
int front, back;
int n, k, x;
long long sum;

int main()
{
    in >> n >> k;

    for(int i = 1; i <= n; ++i)
    {
        in >> v[i];
    }

    front = 1; back = 0;

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

        deq[++back] = i;

        if(i - k == deq[front]) ++front;
        if(i >= k)
        {
            sum += 1LL * v[deq[front]];
        }
    }

    out << sum;
    
    return 0;
}