C. 仙草

内存限制:128 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

一座山里有n个山洞,每个洞里长着一些仙草。山里的红精灵每隔一段时间就想知道其中某些洞里仙草最多的那个洞中有多少仙草,而蓝精灵每隔一段时间就会进入某个洞,希望把里面的仙草变多。山洞实在有点多,请你写个程序帮帮他们算一算。

输入格式

第一行,有两个正整数 n 和 m,分别代表山洞的数目和接下来精灵依次操作的数目。山洞编号分别从 1 编到 n。
第二行包含 n 个整数,代表这 n 个山洞原先的仙草数量,其中第 i 个数代表第 i 个洞的仙草数量。
接下来有 m 行,依次表示他们的操作。每一行有一个字符 c(只取 Q 或 U),和两个正整数 a,b。
当 c 为 Q 的时候,表示红精灵的询问操作,他询问从 a 到 b(包括 a,b) 的每个山洞中,仙草最多的数量;
当 c 为 U 的时候,表示蓝精灵的更新操作,如果当前 a 洞仙草数量低于 b,则把 a 洞的仙草数量变为 b,否则不改动。

输出格式

对于每一次红精灵的询问操作,输出一行一个整数,表示最多仙草的数量。

样例

【输入样例】
5 6
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 2 9
Q 1 5
【输出样例】
5
6
5
9

数据范围与提示

每个洞的仙草数量不会超过10000