Cod sursa(job #1675761)

Utilizator oanaroscaOana Rosca oanarosca Data 5 aprilie 2016 15:48:40
Problema Deque Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <deque>

using namespace std;

struct nr {
  int poz, val;
}num;

int n, k, i, x;
deque<nr> d;
long long s;

int main () {
  ifstream fi("deque.in");
  ofstream fo("deque.out");
  fi >> n >> k;
  for (i = 1; i <= k-1; i++)
    fi >> x, num.val = x, num.poz = i, d.push_back(num);
  for (i = k; i <= n; i++) {
    fi >> x; num.val = x, num.poz = i;
    if (!d.empty() and d.front().poz == i-k)
      d.pop_front();
    while (!d.empty() and d.back().val > x)
      d.pop_back();
    d.push_back(num);
    if (i >= k)
      s += (long long)d.front().val;
  }
  fo << s;
  return 0;
}