Cod sursa(job #3287947)

Utilizator pacelaaaCiurea Pavel pacelaaa Data 20 martie 2025 00:22:08
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include<queue>

using namespace std;

ifstream cin ( "deque.in" );
ofstream cout( "deque.out" );

#define FR( a, b) for( int a = 0; a < b ; a ++ )
#define FOR( a, c, b ) for( int a = c; a < b ; a++)

const int Nmax = 5e6 + 5;

int a[Nmax];
deque<int> dq;

int main()
{
    int n, k;
    long long ans = 0;
    cin >> n >> k;

    FOR( i,1,n+1)
      cin >> a[i];

    dq.push_back( 1 );

    FOR( i, 2, k + 1 ) {
      while( !dq.empty() && ( a[i] < a[dq.back()] ) )
        dq.pop_back();
      dq.push_back(i);
    }

    ans += a[dq.front()];
    FOR( i, k + 1, n + 1 ) {
      if( dq.front() == i - k )
        dq.pop_front();

      while( !dq.empty() && ( a[i] < a[dq.back()] ))
        dq.pop_back();
      dq.push_back(i);
      ans+= a[dq.front()];
    }

    cout << ans << '\n';

    return 0;
}