Cod sursa(job #2574999)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 6 martie 2020 11:06:35
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

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

typedef long long ll;

const int MAX_N = 5e6 + 5;

int n, k;

int v[MAX_N];

deque <int> dq;

ll sum;

int main() {
  fin >> n >> k;
  for (int i = 1; i <= n; ++i) {
    fin >> v[i];
  }
  dq.push_front(1);
  for (int i = 1; i <= n; ++i) {
    while (dq.size() > 0 && v[dq.front()] >= v[i]) {
      dq.pop_front();
    }
    dq.push_front(i);
    if (i >= k) {
      sum += v[dq.back()];
    }
    if (dq.back() <= i - k + 1) {
      dq.pop_back();
    }
  }
  fout << sum << "\n";
  return 0;
}