Cod sursa(job #2124114)

Utilizator bogobatBerbece Daniel bogobat Data 6 februarie 2018 21:51:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#define MAX 5000002
using namespace std;

int deq[MAX];
int v[MAX];

int main() {

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

    int n;
    int k;
    in >> n;
    in >> k;
    long long sum = 0;
    int top = 0;
    int bottom = -1;

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

        while(top <= bottom && v[ deq[bottom] ] >= v[i]) bottom--;

        deq[++bottom] = i;

        if(deq[top] <= i - k) {
            top++;
        }

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

    out << sum ;
    return 0;
}