Cod sursa(job #2491481)

Utilizator ViAlexVisan Alexandru ViAlex Data 12 noiembrie 2019 17:40:26
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;


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

int n,k;
int valori[5000000];

void read()
{
    in>>n>>k;
    for(int i=0; i<n; i++)
    {
        in>>valori[i];
    }
}


struct element
{
    int value,index;
};

void solve()
{
    deque<element> sequence;
    long long result=0;
    for(int i=0; i<n; i++)
    {
        while(sequence.size() && sequence.back().value>=valori[i])
        {
            sequence.pop_back();
        }
        sequence.push_back(element{valori[i],i});


        if(i>=k-1)
        {
            result+=sequence.front().value;
        }

        if((i-sequence.front().index+1)>=k)
        {
            sequence.pop_front();
        }

    }
    out<<result<<endl;
}

int main()
{
    read();
    solve();


}