Cod sursa(job #3312809)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 30 septembrie 2025 01:07:45
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

#define fi first
#define se second

using namespace std;

using i32 = int32_t;
using i64 = int64_t;

int main() {
#ifndef LOCAL
  freopen("deque.in", "r", stdin);
  freopen("deque.out", "w", stdout);
#endif
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  i32 n;
  i32 k;
  cin >> n >> k;
  i64 s{0};
  deque<pair<i32, i32>> dq;
  for (int i = 0; i < n; ++i) {
    i32 e;
    cin >> e;
    for (; dq.size() && dq.front().fi <= i - k;) {
      dq.pop_front();
    }
    for (; dq.size() && dq.back().se >= e;) {
      dq.pop_back();
    }
    dq.emplace_back(i, e);
    if (i >= k - 1) {
      s += dq.front().se;
    }
  }
  cout << s << endl;
  return 0;
}