Cod sursa(job #2538035)

Utilizator BogdanFarcasBogdan Farcas BogdanFarcas Data 4 februarie 2020 12:10:01
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;

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

const int N=5000001;
int v[N],n,k,dq[N],st,dr;
long long ans;

int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    st=1;
    dr=0;
    for(int i=1;i<=n;i++)
    {
        if(i-k==dq[st])
        {
            st++;
        }
        while(st<=dr&&v[i]<=v[dq[dr]])
        {
            dr--;
        }
        dq[++dr]=i;
        if(i>=k)
        {
            ans+=v[dq[st]];
        }
    }
    fout<<ans;
    return 0;
}