Altímetro

Ver en PDF

Enviar solución

Puntos: 100 (parcial)
Límite de tiempo: 1.0s
Límite de memoria: 256M

Autor:
Tipo de problema
Lenguajes permitidos
C, C++

Descripción

El martes por la mañana, el Museo de Ciencias de Chihuahua amaneció con una vitrina vacía: alguien se llevó el fragmento principal del meteorito de Allende, el que cayó sobre el estado en 1969. A Renata Quijada, perito de campo de la Fiscalía, le tocó el caso.

El único rastro es que el ladrón salió del estado en una avioneta. La torre de control conservó el registro del altímetro: N lecturas de altitud, tomadas una por segundo, en el orden en que se registraron: h_1, h_2, \ldots, h_N.

Renata sabe algo que el ladrón no: para cruzar la Sierra Tarahumara, una avioneta tiene que hacer una maniobra de cruce, es decir, ganar altura de forma sostenida hasta un punto máximo y después perderla de forma sostenida. La maniobra de cruce más larga de todo el registro corresponde a la sierra que el avión atravesó, y su duración le dice a Renata a qué distancia buscar la pista de aterrizaje.

Formalmente, una maniobra de cruce es un tramo de lecturas consecutivas h_i, h_{i+1}, \ldots, h_j que cumple las tres condiciones siguientes:

  1. Existe una posición p con i < p < j (el punto máximo).
  2. La altitud sube estrictamente desde el inicio hasta el punto máximo: h_i < h_{i+1} < \cdots < h_p.
  3. La altitud baja estrictamente desde el punto máximo hasta el final: h_p > h_{p+1} > \cdots > h_j.

Observa que una maniobra necesita al menos una lectura de ascenso y al menos una de descenso, por lo que dura al menos 3 segundos.

La duración de una maniobra es la cantidad de lecturas que la forman, es decir j - i + 1.

Escribe un programa que determine la duración de la maniobra de cruce más larga del registro.

Entrada

La primera línea contiene un entero N, la cantidad de lecturas del altímetro.

La segunda línea contiene N enteros separados por espacios: h_1, h_2, \ldots, h_N.

Salida

Una sola línea con un entero: la duración de la maniobra de cruce más larga. Si el registro no contiene ninguna maniobra de cruce, imprime 0.


Ejemplos


Ejemplo 1

Entrada

9

2 1 4 7 3 2 5 5 1

Salida

5

Explicación La maniobra más larga es 1 4 7 3 2, que ocupa las lecturas de la posición 2 a la 6 y dura 5 segundos. Su punto máximo es el 7.

El tramo 2 5 5 1 no es una maniobra porque el ascenso hasta el 5 no continúa de forma estricta: el avión se quedó nivelado.


Ejemplo 2

Entrada

6

3 3 3 3 3 3

Salida

0

Explicación El avión voló nivelado todo el tiempo: no hubo ascenso ni descenso estricto, así que no cruzó ninguna sierra.


Ejemplo 3

Entrada

5

1 2 3 4 5

Salida

0

Explicación El registro sólo sube. Una maniobra de cruce necesita también la bajada.


Límites

  • 1 \le N \le 1\,000\,000
  • 1 \le h_i \le 1\,000\,000\,000

Subtareas

Grupo Puntos Restricciones adicionales
1 20 N \le 1\,000
2 20 N \le 100\,000
3 30 1 \le h_i \le 100
4 30 Sin restricciones adicionales

Comentarios

No hay comentarios por el momento.