Cod sursa(job #1419452)

Utilizator Burbon13Burbon13 Burbon13 Data 15 aprilie 2015 17:23:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <deque>

using namespace std;

const int mx = 5000005 ;

deque <int> d;
int v[mx],n,k ;
long long rez = 0 ;

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" , &v[i] ) ;

        while ( not d.empty() && v[d.back()] > v[i] )
            d.pop_back() ;
        d.push_back(i) ;

        if ( not d.empty() && d.front() == i - k )
            d.pop_front() ;

        if ( i >= k )
            rez += 1LL * v[d.front()] ;
    }

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

    return 0;
}