Cod sursa(job #3172341)

Utilizator elisa.ipateElisa Ipate elisa.ipate Data 20 noiembrie 2023 15:02:59
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <deque>
#include <fstream>

using namespace std;

deque<int> q;
deque<int> ord;

int main()
{
    int n, k, i, x;
    long long s = 0;

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

    cin >> n >> k;
    for( i = 1; i <= k - 1; i++ ) {
        cin >> x;
        while( q.size() > 0 && q.back() >= x ) {
            q.pop_back();
            ord.pop_back();
        }
        q.push_back(x);
        ord.push_back(i);
    }

    for( i = k; i <= n; i++ ) {
        cin >> x;
        while( q.size() > 0 && q.back() >= x ) {
            q.pop_back();
            ord.pop_back();
        }
        q.push_back(x);
        ord.push_back(i);
        while( q.size() > 0 && ord.front() <= i - k ) {
            q.pop_front();
            ord.pop_front();
        }

        //cout << q.front() << "\n";
        s = s + q.front();
    }

    cout << s;
    return 0;
}