Cod sursa(job #2806831)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 23 noiembrie 2021 01:05:30
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin( "secventa.in" );
ofstream fout( "secventa.out" );

const int NMAX = 5e5;
int v[NMAX + 2];
deque <int> dq;

int main() {
  int n, k, i, left, right, maxx;
  fin >> n >> k;
  for( i = 1; i <= n; ++i )
    fin >> v[i];

  left = right = maxx = 0;
  for( i = 1; i <= n; ++i ) {
    while( !dq.empty() && v[dq.back()] >= v[i] )
      dq.pop_back();
    dq.push_back(i);

    if( dq.front() == i - k )
      dq.pop_front();

    if( i >= k && maxx < v[dq.front()] ) {
      maxx = v[dq.front()];
      left = i - k + 1;
      right = i;
    }
  }
  fout << left << " " << right << " " << maxx;
  return 0;
}