Cod sursa(job #2205467)

Utilizator sydeff90Voicu Stefan sydeff90 Data 19 mai 2018 11:22:54
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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("date.in");
  int 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++) {
    s += d.front().val;
    while (d.front().poz <= i - k && !d.empty())
      d.pop_front();
    in >> val;
    v = val;
    introd_elem(val, i);
  }
  cout << s + v;
  return 0;
}