Cod sursa(job #2575652)

Utilizator PopescuAndreiAlexandruPopescu Andrei Alexandru PopescuAndreiAlexandru Data 6 martie 2020 14:52:44
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda imded Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <stack>
#include <cstring>
#include <deque>

using namespace std;

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

deque < pair<int,int> > Deq;

int n,k,x;

long long ans=0;

int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        fin>>x;
        while(!Deq.empty() && x<=Deq.back().first)
            Deq.pop_back();
        Deq.push_back(make_pair(x,i));
        if(i>=k)
        {
            int dist=i-k+1;
            while(Deq.front().second<dist && !Deq.empty())
                Deq.pop_front();
            int val=Deq.front().first;
            ans+=val;
        }
    }
    fout<<ans<<'\n';
}