Cod sursa(job #2707456)

Utilizator george347Ungureanu Octavian george347 Data 17 februarie 2021 08:32:31
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 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;
}