Cod sursa(job #3154203)

Utilizator verde.cristian2005Verde Flaviu-Cristian verde.cristian2005 Data 3 octombrie 2023 18:55:20
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;

int st, dr = -1;
int decc[5000001];
int v[5000001];

void baga(int poz)
{
    while(dr >= st && v[decc[dr]] >= v[poz])
        dr--;
    decc[++dr] = poz;
}

void scoate(int poz)
{
    if(poz == decc[st])
        st++;
}

int main()
{
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);
    int n, k;
    long long rez = 0;
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
        cin >> v[i];
    for(int i = 1; i <= k - 1; i++)
        baga(i);
    for(int i = k; i <= n; i++)
    {
        baga(i);
        rez += v[decc[st]];
        scoate(i - k + 1);
    }
    cout << rez;
    return 0;
}