Cod sursa(job #2774552)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 11 septembrie 2021 20:58:36
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <deque>
#define int long long

using namespace std;

ifstream fin( "deque.in" );
ofstream fout( "deque.out" );

const int NMAX = 5e6;
int v[NMAX + 2];
deque <int> dq;

signed main() {
  int n, k, i, s;
  fin >> n >> k;
  for( i = 1; i <= n; ++i )
    fin >> v[i];

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