Cod sursa(job #3292951)

Utilizator andreidumitrache1709Dumitrache Andrei Bogdan andreidumitrache1709 Data 9 aprilie 2025 20:12:48
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
#define MAXN 5000000
using namespace std;
int v[MAXN + 1];
int main() {
    ifstream cin( "deque.in" );
    ofstream cout( "deque.out" );
    int n , k , i;
    long long ans;
    cin >> n >> k;
    deque< int >dq;
    for( i = 1 ; i <= n ; i++ )
        cin >> v[i];
    ans = 0;
    for( i = 1 ; i <= k ; i++ ) {
        while( !dq.empty() && v[dq.back()] >= v[i] )
            dq.pop_back();
        dq.push_back( i );
    }
    for( ; i <= n ; i++ ) {
        ans += v[dq.front()];
        while( dq.front() <= i - k )
            dq.pop_front();
        while( !dq.empty() && v[dq.back()] >= v[i] )
            dq.pop_back();
        dq.push_back( i );
    }
    ans += v[dq.front()];
    cout << ans << '\n';
    return 0;
}