Cod sursa(job #1696339)

Utilizator oanaroscaOana Rosca oanarosca Data 28 aprilie 2016 21:53:56
Problema Secventa Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>

using namespace std;

int n, k, i, a[500001], minim = -30001, l[500001], sf, inc, sfmin;

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