Cod sursa(job #1696222)

Utilizator oanaroscaOana Rosca oanarosca Data 28 aprilie 2016 16:42:54
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>

using namespace std;

int n, k, s, d, val, a[500001], maxim = -30001, i, l[500001], pfmin;

int main () {
  ifstream fi("secventa.in");
  ofstream fo("secventa.out");
  fi >> n >> k; s = d = 1;
  fi >> a[1]; l[1] = 1;
  for (i = 1; i <= n-1; i++) {
    fi >> a[i];
    while (s <= d and k <= i-l[s])
      s++;
    while (s <= d and a[i] <= a[l[d]])
      d--;
    l[++d] = i;
    if (maxim < a[l[s]])
      maxim = a[l[s]], pfmin = i;
  }
  fo << pfmin-k+1 << ' ' << pfmin << ' ' << maxim;
  return 0;
}