Cod sursa(job #1817394)

Utilizator geni950814Geni Geni geni950814 Data 27 noiembrie 2016 18:49:31
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <deque>
#include <vector>
#include <algorithm>
#include <fstream>

using namespace std;

int secventa(int N, int K, vector<int> array) {
  int base = 0;
  deque<int> dq;

  for(int i = 0; i < array.size(); i++) {
    if(i - K >= 0 && dq.front() == array[i - K]) {
      base = max(base, dq.front());
      dq.pop_front();
    }
    while(!dq.empty() && dq.back() > array[i]) {
      dq.pop_back();
    }
    dq.push_back(array[i]);
  }
  return max(base, dq.front());
}

int main() {
  int N, K;
  ifstream in("secventa.in");
  ofstream out("secventa.out");
  in >> N >> K;
  vector<int> array;
  int i;
  while(in >> i) {
    array.push_back(i);
  }
  out << secventa(N, K, array);
  return 0;
}