Cod sursa(job #3177195)

Utilizator xXoctavianXxStanescu Matei Octavian xXoctavianXx Data 28 noiembrie 2023 17:52:46
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

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

struct Deque{
    deque<pair<int,int> > q;

    void Insert(int x, int i)
    {
        while(!q.empty() && x < q.back().second)
        {
            q.pop_back();
        }
        q.push_back({i,x});
    }

    void Remove(int i)
    {
        if(q.front().first == i)
            q.pop_front();
    }

    int minim()
    {
        return q.front().second;
    }
} dq;

int main()
{
    int n,k,suma = 0;
    fin>>n>>k;
    for(int i=1; i<=k; i++)
    {
        int c; fin>>c;
        dq.Insert(c,i);
    }
    suma += dq.minim();

    for(int i = k+1; i<=n; i++)
    {
        int c; fin>>c;
        dq.Insert(c,i);
        dq.Remove(i-k);
        suma += dq.minim();
    }
    fout<<suma;
    return 0;
}