Tienes un arreglo de n elementos y q consultas. Existen dos tipos de consultas:
Obtener el valor mínimo y el valor máximo dentro de un rango específico.
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:
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.
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.