Cod sursa(job #2009451)

Utilizator Stefan_RaduStefan Radu Stefan_Radu Data 9 august 2017 19:03:04
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <deque>
#include <vector>

using namespace std;

ifstream cin("deque.in");
ofstream cout("deque.out");

int main() {
  int n, k;
  cin >> n >> k;

  vector < int > v(n + 1);
  for (int i = 1; i <= n; i ++)
    cin >> v[i];

  deque < int > Deq;
  long long sum = 0;

  for (int i = 1; i <= k; i ++) {
    if (Deq.size() == 0) {
      Deq.push_front(i);
    }
    else {
      while (Deq.size() != 0 and v[i] <= v[Deq.front()]) {
        Deq.pop_front();
      }
      Deq.push_front(i);
    }
  }
  sum += v[Deq.back()];

  for (int i = k + 1; i <= n; i ++) {
    while (Deq.size() != 0 and v[i] <= v[Deq.front()]) {
      Deq.pop_front();
    }
    Deq.push_front(i);
    if (Deq.back() <= i - k) {
      Deq.pop_back();
    }
    sum += v[Deq.back()];
  }
  cout << sum << '\n';
}