Cod sursa(job #2264737)

Utilizator alex2kamebossPuscasu Alexandru alex2kameboss Data 20 octombrie 2018 11:26:55
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <deque>
#include <vector>
#include <cstdio>

using namespace std;

deque <int> q;
int a[5000005];
int n,k,x;
long long sum;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);

    cin>>n>>k;

    for(int i=0;i<k;++i)
    {
        cin>>a[i];
        while(!q.empty() && a[q.back()]>=a[i])
            q.pop_back();

        q.push_back(i);
    }
    sum+=a[q.front()];

    for(int i=k;i<n;++i)
    {
        cin>>a[i];
        while(!q.empty() && a[q.back()]>=a[i])
            q.pop_back();

        q.push_back(i);
        while(q.front() < i-k+1)
            q.pop_front();

        sum+=a[q.front()];
    }

    cout<<sum;

    return 0;
}