Cod sursa(job #2714072)

Utilizator MaradreMihneaMardare Mihnea MaradreMihnea Data 1 martie 2021 11:46:01
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;

const int N = 5000000;

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

int v[N], dq[N];

int main()
{
    int n, k, st, dr;
    cin >> n >> k;
    long long s = 0;
    st = 0;
    dr = -1;
    for ( int i = 0; i < n; i++)
    {
        cin >> v[i];
        if ( st <= dr && dq[st] == i - k)//eliminare din stanga
        {
            st++;
        }
        while ( st <= dr && v[i] <= v[dq[dr]])//eliminare din dreapta
        {
            dr--;
        }
        dq[++dr] = i;
        if ( i >= k - 1)
        {
            s += v[dq[st]];
        }
    }
    cout << s;
    return 0;
}