Máxima Subsecuencia.


Submit solution

Points: 50 (partial)
Time limit: 1.0s
Memory limit: 256M

Authors:
Problem type
Allowed languages
C, C++, Java, Pascal, Python, VB

En IslaInformatiza le gustan los problemas con arreglos así que dado un arreglo de números enteros a_1, a_2, ..., a_N usted puede insertar un nuevo elemento (de cualquier valor) en cualquier posición en el arreglo. El objetivo es maximizar la longitud de la subsecuencia más larga de modo que los valores que contiene sean números consecutivos.

Formalmente, si la nueva secuencia después de insertar un elemento es: b_1, b_2, ..., b_{N+1}, queremos encontrar la subsecuencia más larga 1 \leq p_1 < p_2 < ... < p_k \leq N+1 tal que (b_{p_{i+1}}-b{p_i})=1 para cada 1 \leq j < k.

Una subsecuencia es una secuencia que se obtiene al seleccionar elementos en cualquier posición del arreglo original, manteniendo el orden relativo de los elementos seleccionados. Por ejemplo, dada la secuencia original [1, 2, 3, 4], algunas posibles subsecuencias podrían ser [1, 3], [2, 4], [1, 2, 3, 4] y [1,3, 4]; otras secuencias como [4, 1], [1, 2, 2] y [5] no serían subsecuencias de [1, 2, 3, 4].

Entrada

En la primera línea de la entrada estándar, se ingresa el número N de elementos de la serie. En la línea siguiente, se ingresan N números separados por un espacio: los valores de los elementos a_1, a_2, ..., a_N.

Salida

La salida estándar debe contener un solo número: la longitud de la secuencia más larga de números consecutivos, insertando de manera óptima un nuevo elemento.

Restricciones

  • 1 \leq N \leq 5*10^5.
  • 1 \leq a_i \leq 5*10^5 para cada i.

Ejemplo de Entrada #1

6
5 1 2 4 5 7

Ejemplo de Salida #1

5

Explicación del ejemplo: La inserción óptima es agregar un elemento con valor 3 en la posición 4: [5, 1, 2, 3, 4, 5, 7]

Ejemplo de Entrada #2

6
10 2 4 1 9 8

Ejemplo de Salida #2

3

Explicación del ejemplo: La subsecuencia más larga sería [2, 3, 4]


Comments

There are no comments at the moment.