Cod sursa(job #2049359)

Utilizator GhiciCineRazvan Dumitriu GhiciCine Data 27 octombrie 2017 09:13:29
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>
#define MAXN 5000000

using namespace std;

int v[MAXN + 5], d[MAXN + 5];
int main() {

  //freopen( "deque.in", "r", stdin );

  int n, k, st, dr, sum, i;

  scanf( "%d%d", &n, &k );

  st = 0;
  dr = -1;
  sum = 0;
  for( i = 0; i < n; i++ ) {
    scanf( "%d", &v[i] );
    if( st <= dr && d[st] == i - k )
      st++;
    while( st <= dr && v[i] <= v[d[dr]] )
      dr--;
    dr++;
    d[dr] = i;
    if( i >= k - 1 )
      sum += v[d[st]];
  }
  printf( "%d", sum );
  return 0;
}