Cod sursa(job #3266538)

Utilizator divadddDavid Curca divaddd Data 9 ianuarie 2025 13:44:15
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 5e6+2;
int n,k,v[NMAX];

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

int main() {
  fin >> n >> k;
  for(int i = 1; i <= n; i++){
    fin >> v[i];
  }
  long long ans = 0;
  deque<int> dq;
  for(int i = 1; i <= n; i++){
    while(!dq.empty() && v[dq.front()] > v[i]){
      dq.pop_front();
    }
    dq.push_front(i);
    while(dq.back() <= i-k){
      dq.pop_back();
    }
    if(i >= k){
      ans += v[dq.back()];
    }
  }
  fout << ans;
  return 0;
}