Cod sursa(job #2565586)

Utilizator SergiuS3003Sergiu Stancu Nicolae SergiuS3003 Data 2 martie 2020 15:06:17
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <deque>
using namespace std;
deque <int> v;
int A[5000005];
int main()
{
    freopen ( "deque.in", "r", stdin );
    freopen ( "deque.out", "w", stdout );
    int n, nr, k;
    long long sum = 0;
    scanf ( "%d%d", &n, &k );

    for ( int i = 1; i <= n; i++ )
        scanf ( "%d", &A[i] );

    for ( int i = 1; i <= n; i++ )
    {
        while ( !v.empty() && A[i] <= A[v.back()] )
            v.pop_back();

        v.push_back ( i );

        if ( v.front() == i - k )
            v.pop_front();

        if ( i >= k )
            sum += A[v.front()];
    }

    printf ( "%lld", sum );
    return 0;
}