Cod sursa(job #2544117)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 11 februarie 2020 19:40:50
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>

#define N 5000001

using namespace std;

ifstream f ( "deque.in" );
ofstream g ( "deque.out" );

deque < int > dq;
long long S;
int v[N];

int main()
{   int n, k, i;
    f >> n >> k;
    for ( i = 1; i <= n; i++ )
        f >> v[i];
    for ( i = 1; i <= n; i++ ){
        while ( ! dq.empty ( ) && v[i] < v[dq.back ( )] )
            dq.pop_back ( );
        dq.push_back ( i );
        while ( ! dq.empty ( ) && i - dq.front ( ) >= k )
            dq.pop_front ( );
        if ( i >= k )
            S += v[dq.front ( )];
    }
    g << S;
    return 0;
}