(2)U,Q最高分是多少
2015-08-26 20:30
232 查看
<pre name="code" class="cpp">// HW-(最高分是多少).cpp : 定义控制台应用程序的入口点。 //输入包含多组测试数据。 //每组输入第一行是两个正整数N和M(0<N<=30000,0<M<500),代表学生的数目和操作的数目,学生ID编号从1到N。 //第二行包含N个整数,代表N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩。 //接下来有M行,每一行有一个字符C(取'U'或'Q'),和两个正整数A,B,当C为Q的时候,表示这是一条询问操作,它询问ID从A到B(包括A,B)成绩最高是多少。当C为U的时候表示一条更新操作,要求把ID为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 #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int N,M; cin>>N; cin>>M; int a[100]={0},x,i; for ( i=0;i<N;i++) { cin>>x; a[i]=x; } a[i]='\0'; char C[100]={0},C0; int A[100]={0},A0; int B[100]={0},B0; for (int j=0;j<M;j++) { cin>>C0; C[j]=C0; cin>>A0; A[j]=A0; cin>>B0; B[j]=B0; } for (int j=0;j<M;j++) { int max=a[j]; if (C[j]=='Q') { for (int l=A[j]-1;l<B[j];l++ ) { if (a[l]>=max) max=a[l]; } cout<<max<<endl; } if (C[j]=='U') { a[A[j]-1]=B[j];continue; } } return 0; }
相关文章推荐
- HBase-1.0读写数据
- 【JavaScript】正则表达式
- Dual-SIM Phone
- JDBC连接Oracle RAC
- HDOJ 1203 I NEED A OFFER!(01背包)
- MMU初始化
- HttpClient 4.3教程
- 利用Struts进行图片上传
- STL map和unordered_map的区别
- 黑马程序员——OC的Category和Protocol
- 动态规划之背包问题详解
- cocos2dx 玩转音乐播放
- Android-有序广播简单例子
- 【codevs天梯&青铜Bronze】解题报告
- java 字符串json
- 8.26学习总结
- 自定义ExpandableListView
- C语言实现ls命令
- 第K极值
- Android 扫描wifi局域网ip