Cod sursa(job #2644688)

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

using namespace std;

deque <pair <int, int> > dq;

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;

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

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

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

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

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

  out << suma;

  return 0;
}