Cod sursa(job #2333588)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 1 februarie 2019 15:03:25
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
const int NR = 100001 ;
ifstream in ("deque.in") ;
ofstream out ("deque.out") ;
int n , k , v [  5000001 ] ;
int64_t sum ;
int main ()
{
    in >> n >> k ;
    deque < int > dq ;
    for ( int i = 1 ; i <= n ; ++ i )
    {
        in >> v [ i ] ;
            if ( !dq.empty() && dq.front() == i - k )
                dq.pop_front() ;
            while ( !dq.empty() && v [ dq.back() ] >= v [ i ] )
            {
                dq.pop_back() ;
                if ( dq.empty() )   break ;
            }
        dq.push_back ( i ) ;
        if ( i >= k )   sum += v [ dq.front() ] ;
    }
    out << sum ;

    return 0 ;
}