Cod sursa(job #2205469)

Utilizator sydeff90Voicu Stefan sydeff90 Data 19 mai 2018 11:29:51
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <deque>
#include <iostream>
#include <fstream>

using namespace std;
struct elem {
  int val, poz;
};

deque<elem> d;

void introd_elem(int val, int poz) {
  elem x;
  x.val = val;
  x.poz = poz;
  if (d.empty()) {
    d.push_back(x);
    return;
  }
  while (d.back().val >= val)
    d.pop_back();
  d.push_back(x);
}

int main() {
  ifstream in("deque.in");
  ofstream out("deque.out");
  long long n, k, val, s=0;
  in>>n>>k;
  for (int i=0; i<k; i++) {
    in >> val;
    introd_elem(val, i);
  }
  int v;
  for (int i=k; i < n; i++) {
    if (!d.empty())
      s += d.front().val;
    while (!d.empty() && d.front().poz <= i - k )
      d.pop_front();
    in >> val;
    v = val;
    introd_elem(val, i);
  }
  out << s + v;
  return 0;
}