Consulta de Mínimo-Máximo en un Rango

Tienes un arreglo de n elementos y q consultas. Existen dos tipos de consultas:
  1. Obtener el valor mínimo y el valor máximo dentro de un rango específico.
  1. Actualizar el arreglo en una ubicación determinada.
Tu tarea es procesar estas consultas de manera eficiente.

Entrada

La primera línea de la entrada contiene dos enteros n y q (1 ≤ n, q ≤ 100 000), que representan la cantidad de elementos en el arreglo y la cantidad de consultas, respectivamente.
La segunda línea contiene n números separados por espacios (), que corresponden a los valores iniciales del arreglo.
Las siguientes q líneas representan las consultas:
  1. Para las consultas de mínimo y máximo en un rango: la línea comienza con el número 1, seguido de dos enteros y (), que indican el rango de índices [] donde se deben calcular el valor mínimo y el valor máximo.
  1. Para las consultas de actualización: la línea comienza con el número 2, seguido de dos enteros y (), que representan el índice del elemento a modificar y su nuevo valor.

Salida

Para cada consulta de mínimo y máximo en un rango, debes imprimir en líneas separadas el valor mínimo y el valor máximo de los elementos dentro del rango indicado.

Ejemplos

Entrada
Salida
6 4 12 8 16 24 36 48 1 2 5 2 4 10 1 1 6 1 3 6
8 36 8 48 10 48
 

Constraints

Time limit: 0.9 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue