Cod sursa(job #2731854)

Utilizator TUdOr73Minciunescu Tudor TUdOr73 Data 28 martie 2021 14:07:10
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#define Nmax 5000002

using namespace std;

int n, k, suma=0;
int v[Nmax];
int deque[Nmax];

int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    f >> n >> k;
    for(int i = 1; i<= n; i++) {
        f >> v[i];
    }
    int front = 1;
    int back = 0;
    for(int i = 1; i<= n;i++){
        while( v[i] <= v[deque[back]] && front <= back){
            back--;
        }
        back++;
        deque[back] = i;
        if (deque[front] == i - k)
            front++;
        if (i >= k)
            suma += v[deque[front]];
    }
    g << suma;
    f.close();
    g.close();
    return 0;
}