Cod sursa(job #1560847)

Utilizator TiberiuGCopaciu Tiberiu George TiberiuG Data 3 ianuarie 2016 13:28:52
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
# include <cstdio>
# include <deque>
# define N 5000010

using namespace std;

deque <int> q;
int n,lg,a[N];
long long S;

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

    scanf("%d %d\n", &n, &lg);

    for(int i=1; i<=n; ++i)
    {
        scanf("%d\n", &a[i]);
        while(q.size() && a[q.back()]>=a[i]) q.pop_back();
        q.push_back(i);
        if(i>=lg) S+=a[q.front()];
        if(q.front()==i-lg+1) q.pop_front();
    }

    printf("%lld\n", S);

}