Cod sursa(job #2446536)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 9 august 2019 14:46:19
Problema Secventa Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#define NRMIN -30001
using namespace std;

struct nrInVec
{
  int nr;
  int pos;

  nrInVec(int x, int i) : nr(x), pos(i) {}
};

bool operator< (nrInVec x, nrInVec y)
{
  return x.nr > y.nr;
}

int main()
{
  freopen("secventa.in", "r", stdin);
  freopen("secventa.out", "w", stdout);
  priority_queue<nrInVec> heap;

  int n, k;
  scanf("%d", &n);
  scanf("%d", &k);

  for (int i = 1; i < k; ++i)
  {
    int x;
    scanf("%d", &x);

    heap.push(nrInVec(x, i));
  }

  int maximum = NRMIN;
  int pos = -1;

  for (int i = k; i <= n; ++i)
  {
    int x;
    scanf("%d", &x);

    heap.push(nrInVec(x, i));

    if (heap.top().nr > maximum)
    {
      maximum = heap.top().nr;
      pos = i - k + 1;
    }

    while (heap.top().pos <= i - k + 1)
      heap.pop();
  }

  printf("%d %d %d", pos, pos + k - 1, maximum);

  return 0;
}