#include<iostream>
#include<vector>
using namespace std;
int main(){
int n,m;
while(cin>>n>>m){
vector<int>stu(n);
for(int i=0;i<n;i++){
cin>>stu[i];
}//输入初始成绩;
char c;int a;int b;
for(int j=0;j<m;j++){
cin>>c>>a>>b;
if(c=='Q'){
if(a>b)swap(a,b);
//调整q时的左右边界值,确保在合理范围内;
int max=stu[a-1];//将范围内的第一个值作为初始max;
for(int k=a;k<b;k++){
if(max<stu[k]) {max=stu[k];}
}
cout<<max<<endl;//遍历范围[a,b]中的值,找出最大值;
}
if(c=='U'){stu[a-1]=b;}//覆盖
}//操作数,即输出数;
}
return 0;
}
总结:其实本题目挺简单的,但是之前一直在LeetCode上解题,模式不太一样,牛客网什么都不给,让自己输入输出,所以会比较纠结对题目的理解这一块;