Cod sursa(job #2668880)

Utilizator Fantastic_Mantudor voicu Fantastic_Man Data 5 noiembrie 2020 17:17:21
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;
const int NMAX = 5e6;
int dq[NMAX + 1], v[NMAX + 1];
ifstream fin("deque.in");
ofstream fout("deque.out");
int main() {
    int n, k, i, lung, st, dr;
    long long sum = 0;
    fin >> n >> k;
    lung = st = 0;
    dr = - 1;
    sum = 0;
    for ( i = 0; i < n; i++ ) {
        fin >> v[i];
        while ( lung > 0 && v[i] <= v[dq[dr]] )
            dr--, lung--;
        dq[++dr] = i; lung++;
        if ( i - dq[st] == k )
            st++, lung--;
        if ( i >= k - 1 )
            sum += (long long) v[dq[st]];
       // fout << v[dq[st]] << '\n';
    }
    fout << sum;
    
    return 0;
}