Требуется реализовать эффективную структуру данных, позволяющую изменять элементы массива A[1..N] и вычислять максимальный элемент на отрезке [L, R].
Первая строка входного файла INPUT.TXT содержит натуральное число N – размер массива (N ≤ 105). Во второй строке записаны N целых чисел – элементы массива, целые числа, не превосходящие 109 по абсолютной величине. Третья строка содержит натуральное число M – количество запросов (M ≤ 30 000). Каждая из следующих M строк представляет собой описание запроса. Сначала вводится одна буква, кодирующая вид запроса («m» – вычислить максимум, «u» – обновить значение элемента). Следом за «m» идут два числа L и R – номера левой и правой границы отрезка. За «u» следуют два числа I и X – номер элемента и его новое значение, не превосходящее 109 по абсолютной величине (1 ≤ L ≤ R ≤ N, 1 ≤ I ≤ N).
В выходной файл OUTPUT.TXT для каждого запроса на вычисление максимума выведите результат. Все числа следует выводить в одну строку, разделяя пробелом.
№ | INPUT.TXT | OUTPUT.TXT |
1 | 5
1 2 3 4 5
5
m 1 5
u 3 10
m 1 5
u 2 12
m 1 3 | 5 10 12 |