Cod sursa(job #3238907)

Utilizator andreidumitrache1709Dumitrache Andrei Bogdan andreidumitrache1709 Data 31 iulie 2024 15:03:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 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;
    deque< int >deq;
    cin >> n >> k;
    for( i = 0 ; i < k ; i++ ) {
        cin >> v[i];
        while( !deq.empty() && v[i] <= v[deq.back()] )
            deq.pop_back();
        deq.push_back( i );
    }
    ans = v[deq.front()];
    for( ; i < n ; i++ ) {
        cin >> v[i];
        while( !deq.empty() && v[i] <= v[deq.back()] )
            deq.pop_back();
        deq.push_back( i );
        if( deq.front() <= i - k )
            deq.pop_front();
        ans += 1LL * v[deq.front()];
    }
    cout << ans << '\n';
    return 0;
}