Cod sursa(job #2208919)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 1 iunie 2018 11:32:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
deque <int> dq;
int n, k, v [5000004];
long long Sol;
int main (void){
    fin >> n >> k;
    for (int i = 1; i <= k; i ++){
        fin >> v [i];
        while (!dq.empty () && v [dq.back ()] > v [i]) dq.pop_back ();
        dq.push_back (i);
    }Sol += v [dq.front ()];
    for (int i = k + 1; i <= n; i ++){
        fin >> v [i];
        if (!dq.empty () && dq.front () < i - k + 1) dq.pop_front ();
        while (!dq.empty () && v [dq.back ()] > v [i]) dq.pop_back ();
        dq.push_back (i);
        Sol += v [dq.front ()];
    }
    fout << Sol;
    return (0);
}