Cod sursa(job #2827703)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 6 ianuarie 2022 10:26:56
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <deque>

using namespace std;
int v[5000005];
deque <int> dq;
int main()
{
    FILE *fin=fopen ("deque.in","r");
    FILE *fout=fopen ("deque.out","w");
    int n,k,i;
    long long s=0;
    fscanf (fin,"%d%d",&n,&k);
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&v[i]);
    dq.push_back(1);
    for (i=2;i<=n;i++){
        while (!dq.empty() && v[i]<=v[dq.back()])
            dq.pop_back();
        dq.push_back(i);
        if (i-dq.front()==k)
            dq.pop_front();
        if (i>=k){
            s+=v[dq.front()];
            //printf ("%d ",v[d[p]]);
        }
    }
    fprintf (fout,"%lld",s);
    return 0;
}