Cod sursa(job #1671737)

Utilizator oanaroscaOana Rosca oanarosca Data 2 aprilie 2016 09:40:09
Problema Deque Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 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);
    s += (long long)d.front().val;
  }
  fo << s;
  return 0;
}