Cod sursa(job #1357566)

Utilizator superman_01Avramescu Cristian superman_01 Data 23 februarie 2015 23:19:07
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <algorithm>
#include <vector>
#include <iostream>
#include <fstream>
#include <cstring>
#include <deque>

#define NMAX 5000005

using namespace std;

ifstream in ( "deque.in" );
ofstream out ( "deque.out" );
int N  ,  K;
deque < long long> Q;
long long Answer;
long long v[NMAX];


int main ( void ){
   int i , j ;
   in >> N >> K ;
   for ( i = 1 ; i <= N ; ++i )
      in >> v[i];
   for ( i = 1 ; i <= N ; ++i ){
      while (Q.size() and  v[i] < v[Q.back()]  )
         Q.pop_back();
    Q.push_back(i);
    while ( i-Q.front() >= K)
    Q.pop_front();
    if( i >= K )
    Answer += v[Q.front()];
   }
   out << Answer << "\n";
  return 0 ;
}