Cod sursa(job #3345859)

Utilizator nstefanNeagu Stefan nstefan Data 11 martie 2026 15:40:13
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <deque>
#define int long long
using namespace std;

class Solver {
  int K;
  int index;
  std::deque<std::pair<int, int>> dq;

public:
  explicit Solver(int K_) : K{K_}, index{1} {}

  void appendValue(int value) {
    while (dq.size() && (
      dq.back().first > value ||
      dq.back().second < index - K
    )) dq.pop_back();

    dq.emplace_back(value, index);
    index++;
  }

  int getMin() {
    while (dq.size() && dq.front().second < index - K)
      dq.pop_front();
    return dq.front().first;
  }
};

int main() {
  int n, k; cin >> n >> k;
  Solver solver{k};

  int overallMin = 11111111;
  for (int i = 1; i <= n; i++) {
    int value; cin >> value;
    solver.appendValue(value);
    if (i >= k) overallMin = min(overallMin, solver.getMin());
  }

  cout << overallMin;
}