Cod sursa(job #2699351)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 24 ianuarie 2021 11:47:12
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
/*
*  Created by Andrei Arhire 24/01/2021
*  Copyright © 2021 Andrei Arhire. All rights reserved.
*  Expected verdict - Accepted
*/
#include <bits/stdc++.h>
#include <deque>
#define pb push_back
#define eb emplace_back
#define mp make_pair
using namespace std;
const   long long NR = 5e6 + 1e3 ;
const   long long oo = 1e9 + 100 ;
const   long long MOD = 1e9 + 7  ;
const   long long MOD2 = 1e9 + 9  ;

long long n , k ;
deque < long long > dq ;
long long a [ NR ] , sum ;
ifstream in ("deque.in") ;
ofstream out ("deque.out") ;
signed main () {
    ios::sync_with_stdio(0) ;
    in.tie(0);
    long long i ;
    long long x ;
    in >> n >> k ;
    for ( i = 1 ; i <= n ; ++ i )   {
        in >> a [ i ] ;
        while ( !dq.empty() && a [ dq.back() ] > a [ i ] )  {
            dq.pop_back() ;
        }
        dq.pb( i ) ;
        if ( i - dq.front() == k )
            dq.pop_front() ;
        if ( i >= k )   {
            sum += a [ dq.front() ] ;
        }
    }
    out << sum << '\n' ;


    return 0 ;
}