Cod sursa(job #2644691)

Utilizator Razvan48Capatina Razvan Nicolae Razvan48 Data 25 august 2020 16:34:34
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <deque>

using namespace std;

deque <pair <int, int> > dq;

void insert(int x, int i)
{
  while (!dq.empty() && dq.back().first >= x)
  {
    dq.pop_back();
  }
  dq.push_back(make_pair(x, i));
}

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

  int n, k, x;
  long long int suma = 0;

  in >> n >> k;

  for (int i = 1; i < k; i++)
  {
    in >> x;
    insert(x, i);
  }

  for (int i = k; i <= n; i++)
  {
    in >> x;
    insert(x, i);

    if (dq.front().second <= i - k)
    {
      dq.pop_front();
    }

    suma = suma + dq.front().first;
  }

  out << suma;

  return 0;
}