Cod sursa(job #1374158)

Utilizator andrei_r_97Radoi Andrei andrei_r_97 Data 4 martie 2015 23:30:21
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <deque>

#define MAX 5000000

using namespace std;

int a[MAX];

int main()
{
  ifstream f("deque.in");
  ofstream g("deque.out");

  int n, k;
  deque<int> coada;

  f >> n >> k;

  for (int i = 0; i < n; i++) {
    f >> a[i];
  }


  long long sum = 0;
  for (int i = 0; i < n; i++) {

    while (!coada.empty() && a[i] <= a[coada.back()]) {
      coada.pop_back();
    }

    coada.push_back(i);

    if (coada.front() == i - k) {
      coada.pop_front();
    }

    if (i + 1 >= k) {
      sum += a[coada.front()];
    }

  }

  g << sum;

  f.close();
  g.close();

  return 0;
}