Cod sursa(job #2671439)

Utilizator 23liviuStanescu Liviu 23liviu Data 12 noiembrie 2020 09:29:40
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
using namespace std;
const int limit = 5e6+10;
int arr[limit], que[limit];

int main()
{
    ifstream cin ("deque.in");
    ofstream cout ("deque.out");
    int n,k;
    cin >> n >> k;
    for (int i = 1; i <= n; i++)
        cin >> arr[i];

    int frnt = 1, bck = 0;
    long long ans = 0;
    for (int i = 1; i <= n; i++)
    {
        while (frnt <= bck && arr[i] <= arr[que[bck]])
            bck--;
        bck++;
        que[bck]=i;
        if (que[frnt]==i-k)
            frnt++;
        if (i>=k)
            ans += arr[que[frnt]];
    }
    cout << ans;
    return 0;
}