Cod sursa(job #3231159)

Utilizator BuruianaRaresAndreiBuruiana Rares Andrei BuruianaRaresAndrei Data 25 mai 2024 08:52:56
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
// #include <iostream>
#include <fstream>

using namespace std;

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

int n, k, ans;
int v[100002], dq[100002];
int stq, drq;

int main()
{
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
        cin >> v[i];
    dq[++stq] = 1;
    drq++;
    for(int i = 2; i <= k; i++)
    {
        while(drq >= stq && v[i] <= v[dq[drq]])
            drq--;
        dq[++drq] = i;
    }
    /*
    for(int j = stq; j <= drq; j++)
        cout << dq[j] << ' ';
    cout << '\n';
    */
    // cout << v[dq[stq]] << ' ';
    ans += v[dq[stq]];
    for(int i = 2; i <= n - k + 1; i++)
    {
        if(dq[stq] == i - 1)
            stq++;
        int elem = i + k - 1;
        while(drq >= stq && v[elem] <= v[dq[drq]])
            drq--;
        dq[++drq] = elem;
        /*
        for(int j = stq; j <= drq; j++)
            cout << dq[j] << ' ';
        cout << '\n';
        */
        // cout << v[dq[stq]] << ' ';
        ans += v[dq[stq]];
    }
    cout << ans << '\n';
    return 0;
}