Cod sursa(job #2946081)

Utilizator tmxmatTudor Matasaru Mihai tmxmat Data 24 noiembrie 2022 15:42:48
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;

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

int cod[5000001];
int v[5000001];

int main()
{
    int n, k;
    cin >> n >> k;
    int st = 1, dr = 0, s = 0;
    v[0] = -2000000000;
    for (int i = 1; i <= n; i ++)
    {
        cin >> v[i];
        if (i < k)
        {
            while (v[i] < v[cod[dr]] && st <= dr)
            {
                dr --;
            }
            dr ++;
            cod[dr] = i;
        }
        else
        {
            if (st <= dr && cod[st] < i - k + 1)
            {
                st ++;
            }
            while (v[i] < v[cod[dr]] && st <= dr)
            {
                dr --;
            }
            dr ++;
            cod[dr] = i;
            s += v[cod[st]];
        }
    }
    cout << s;
    return 0;
}