Cod sursa(job #2037408)

Utilizator GrasuneAlexandruGrasune Alexandru Mihai GrasuneAlexandru Data 12 octombrie 2017 09:54:04
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <cstdio>
#include <deque>


using namespace std;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    deque<int>D;
    int x[5000000],n,k;
    long long s;
    scanf("%d %d\n",&n,&k);
    for(int i=0; i<n; i++)
        scanf("%d\n",x[i]);
    for(int i=0; i<k; i++)
    {
        while(!D.empty()&&x[i]<x[D.back()])
        {
            D.pop_back();

        }
        D.push_back(i);
    }
    s=s+D.front();
    for(int i=k; i<n; i++)
    {
        if(i-k==D.front())
            D.pop_front();
        while(!D.empty()&&x[i]<x[D.back()])
        {
            D.pop_back();

        }
        D.push_back(i);
        s=s+D.front();

    }
    printf("%lld ",s);




    return 0;
}