Cod sursa(job #2621950)

Utilizator lauratenderLaura Tender lauratender Data 31 mai 2020 02:14:54
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <queue>

std::ifstream in("deque.in");
std::ofstream out("deque.out");

const int MAXN = 5000000;
int v[1 + MAXN];
std::deque <int> dq;

int main(){
  int n, k;
  in >> n >> k;
  for(int i = 1; i <= n; i++)
    in >> v[i];
  long long sum = 0LL;
  for(int i = 1; i <= n; i++){
    in >> v[i];
    while(!dq.empty() && v[dq.back()] >= v[i])
      dq.pop_back();
    dq.push_back(i);
    while(!dq.empty() && i - dq.front() + 1 > k)
      dq.pop_front();
    sum += dq.front() * (i >= k);
  }
  out << sum;
  return 0;
}