Cod sursa(job #3123948)

Utilizator Mircea08Tomita Mircea Stefan Mircea08 Data 26 aprilie 2023 14:04:10
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
unsigned int n, k, i;
std :: deque <unsigned int> dq;
std :: vector <int> v;
long long int x, S;
int main() {
    std :: ios_base :: sync_with_stdio(0);
    std :: ifstream fin("deque.in");
    v.push_back(-1e9);
    dq.push_back(0);
    fin >> n >> k;
    for (i = 1; i < k; ++ i) {
        fin >> x;
        v.push_back(x);
        while (v[dq.back()] >= x)
            dq.pop_back();
        dq.push_back(i);
    }
    for (; i <= n; ++ i) {
        fin >> x;
        v.push_back(x);
        if (i - dq[1] == k) {
            dq.pop_front();
            dq.front() = 0;
        }
        while (v[dq.back()] >= x)
            dq.pop_back();
        dq.push_back(i);
        S += v[dq[1]];
    }
    fin.close();
    std :: ofstream fout("deque.out");
    fout << S;
    fout.close();
    return 0;
}