Cod sursa(job #2770691)

Utilizator Teodor_AxinteAxinte Teodor-Ionut Teodor_Axinte Data 22 august 2021 17:57:31
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <deque>

using namespace std;

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

const int N = 5000010;

vector<long long int> v;
deque<long long int> d;
long long int n, k, ans;

int main() {

    fin >> n >> k;
    for (int i = 0; i < n; i++) {
        int x;
        fin >> x;
        v.push_back(x);
    }

    d.push_back(0);

    for (int i = 1; i < v.size(); i++) {
        if (!d.empty())
            while (v[i] < v[d[d.size() - 1]]) {
                d.pop_back();
                if (d.empty())
                    break;
            }

        d.push_back(i);
        if (d[0] == i - k)
            d.pop_front();
        if (i >= k - 1)
            ans += v[d[0]];

/*
        cout << "Rasp: " << ans << "|||   ";

        for (auto it:d)
            cout << it << " ";
        cout << '\n';
        */
    }

    fout << ans;
    return 0;

}