Cod sursa(job #2704583)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 10 februarie 2021 20:09:33
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

int dq[5000010], st, dr;
int a[5000010];

int main()
{
    int n,k;
    f>>n>>k;

    st = 1;
    dr = 0;
    long long smin =0;

    for(int i = 1; i<=n; ++i)
        f>>a[i];

    for(int i = 1; i<=k; ++i)
    {
         while(dr>=st && a[i]< a[dq[dr]])
            dr--;
         dq[++dr] = i;
    }
    smin += a[dq[st]];

    for(int i =k+1; i<=n; ++i)
    {
        if(dq[st] == i-k)
            st++;
        
        while(dr>=st && a[i]< a[dq[dr]])
            dr--;
        dq[++dr] = i;

        smin += a[dq[st]];
    }

    g<<smin<<"\n";

    f.close();
    g.close();
    return 0;
}