Cod sursa(job #2264651)

Utilizator cristii2000cristiiPanaite Cristian cristii2000cristii Data 20 octombrie 2018 10:57:56
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>

#include <deque>



using namespace std;

deque <int> deq;

long long s;

int k, n, a[5000005];

int main()

{

    freopen("deque.in", "r", stdin);

    freopen("deque.out", "w", stdout);

    scanf("%d %d", &n, &k);

    for(int i=1; i<=n; i++)

        scanf("%d", &a[i]);

    for(int i=1; i<k; i++)

    {

        while(!deq.empty() && a[i]<a[deq.back()])

            deq.pop_back();

        deq.push_back(i);



    }

    for(int i=k; i<=n; i++)

    {

        while(!deq.empty() && a[i]<a[deq.back()])

            deq.pop_back();

        deq.push_back(i);

        if(deq.front()==i-k)

            deq.pop_front();

        s+=a[deq.front()];

    }

    printf("%lld", s);

    return 0;

}