Cod sursa(job #2589410)

Utilizator JesseMcCreeVladimir Sontea JesseMcCree Data 26 martie 2020 12:17:11
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;

FILE *fin, *fout;

int v[5000001];
int dq[5000001];

int main()
{
    fin=fopen("deque.in", "r");
    fout=fopen("deque.out", "w");

    int n, k, front=1, back=0;
    long long s=0;
    fscanf(fin, "%d%d", &n, &k);

    for(int i=1; i<=n; i++)
    {
        fscanf(fin, "%d", &v[i]);
        while(front<=back && v[i]<=v[dq[back]])
        {
            back--;
        }
        dq[++back]=i;

        if(dq[front]==i-k)
        {
         front++;
        }

        if(i>=k)
        {
          s+=v[dq[front]];
        }
    }

    fprintf(fout, "%lld ", s);

    return 0;
}