Cod sursa(job #3214059)

Utilizator vladrochianVlad Rochian vladrochian Data 13 martie 2024 18:58:50
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <deque>
#include <fstream>

using namespace std;

const int N_MAX = 5000000;

ifstream fin("deque.in");
ofstream fout("deque.out");

int N, K;
int a[N_MAX + 5];

deque<int> dq;
int64_t ans;

int main() {
  fin >> N >> K;
  for (int i = 1; i <= N; ++i) {
    fin >> a[i];
    if (!dq.empty() && dq.front() == i - K) {
      dq.pop_front();
    }
    while (!dq.empty() && a[i] <= a[dq.back()]) {
      dq.pop_back();
    }
    dq.push_back(i);
    if (i >= K) {
      ans += a[dq.front()];
    }
  }
  fout << ans << "\n";
  return 0;
}