Cod sursa(job #2495634)

Utilizator Rares31100Popa Rares Rares31100 Data 19 noiembrie 2019 18:28:13
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

int n,k;
int val[5000001];
pair <int,int> coada[5000001];
int c,vf;
long long sum;

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

int main()
{
    cin>>n>>k;

    for(int i=1;i<=n;i++)
        cin>>val[i];

    c=1;
    for(int i=1;i<=k;i++)
    {
        while(vf>=c && coada[vf].first>=val[i])
            vf--;

        coada[++vf]={val[i],i};
    }
    sum=(long long)coada[c].first;

    for(int i=k+1;i<=n;i++)
    {
        while(coada[c].second<=i-k)
            c++;

        while(vf>=c && coada[vf].first>=val[i])
            vf--;

        coada[++vf]={val[i],i};
        sum+=(long long)coada[c].first;
    }

    cout<<sum;
}