Cod sursa(job #2887041)

Utilizator kanyjmkSabau Eduard kanyjmk Data 8 aprilie 2022 18:43:47
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

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

int main()
{
    unsigned n, k, deq_begin, deq_end;
    long long sum;
    deq_begin = 1;
    sum = 0;
    deq_end = 0;
    fin >> n >> k;
    int* v = new int[n+1];
    int* deq = new int[n+1];

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

        while(deq_begin <= deq_end && v[i] <= v[deq[deq_end]])
              deq_end--;

        deq[++deq_end] = i;

        if(deq[deq_begin] == i-k)
            deq_begin++;

        if(i >= k)
           sum += v[deq[deq_begin]];
    }
    fout << sum;

    return 0;
}