Cod sursa(job #2729859)

Utilizator rimihaiMihai Radu-Ioan rimihai Data 25 martie 2021 15:17:02
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

long long v[5000010];
long long deq[5000010];

ifstream fin ("deque.in");
ofstream fout("deque.out");

int main()
{
    long long n,k,s=0;
    fin>>n>>k;
    for(long long i=1; i<=n; i++)
        fin>>v[i];
    long long frontdeq,backdeq;
    frontdeq=1;
    backdeq=0;
    for(long long i=1; i<=n; i++)
    {
        while (frontdeq<=backdeq and v[i]<=v[deq[backdeq]])
        {
            backdeq--;
        }
        backdeq++;
        deq[backdeq]=i;
        if (deq[frontdeq]==i-k) frontdeq++;
        if (i>=k) s=s+v[deq[frontdeq]];
    }
    fout<<s<<endl;
    return 0;
}