【华为2016上机试题C++】最高分是多少
生活随笔
收集整理的這篇文章主要介紹了
【华为2016上机试题C++】最高分是多少
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
[編程題] 最高分是多少
時(shí)間限制:1秒
空間限制:65536K
老師想知道從某某同學(xué)當(dāng)中,分?jǐn)?shù)最高的是多少,現(xiàn)在請你編程模擬老師的詢問。當(dāng)然,老師有時(shí)候需要更新某位同學(xué)的成績.輸入描述:
輸入包括多組測試數(shù)據(jù)。 每組輸入第一行是兩個(gè)正整數(shù)N和M(0 < N <= 30000,0 < M < 5000),分別代表學(xué)生的數(shù)目和操作的數(shù)目。 學(xué)生ID編號從1編到N。 第二行包含N個(gè)整數(shù),代表這N個(gè)學(xué)生的初始成績,其中第i個(gè)數(shù)代表ID為i的學(xué)生的成績 接下來又M行,每一行有一個(gè)字符C(只取‘Q’或‘U’),和兩個(gè)正整數(shù)A,B,當(dāng)C為'Q'的時(shí)候, 表示這是一條詢問操作,他詢問ID從A到B(包括A,B)的學(xué)生當(dāng)中,成績最高的是多少 當(dāng)C為‘U’的時(shí)候,表示這是一條更新操作,要求把ID為A的學(xué)生的成績更改為B。輸出描述:
對于每一次詢問操作,在一行里面輸出最高成績.輸入例子:
5 7 1 2 3 4 5 Q 1 5 U 3 6 Q 3 4 Q 4 5 U 4 5 U 2 9 Q 1 5輸出例子:
5 6 5 9 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int getmax(vector<int> &gra,int x,int y)//選出x到y(tǒng)中的最大值 6 { 7 int temp; 8 if(x>y)//考慮輸入前面的比后面大的情況 9 { 10 temp=x; 11 x=y; 12 y=temp; 13 14 } 15 int max; 16 max=gra[x]; 17 for(int i=x;i<=y;++i) 18 { 19 if(gra[i]>max) 20 max=gra[i]; 21 22 } 23 24 return max; 25 26 } 27 28 int main() 29 { 30 int x,y; 31 char ch; 32 int temp,g_num,op_num; 33 vector<int> max; 34 35 cin>>g_num>>op_num; 36 vector<int> gra; 37 38 for(int i=0;i<g_num;i++) 39 { 40 cin>>temp; 41 gra.push_back(temp); 42 43 } 44 45 while(op_num--) 46 { 47 48 cin>>ch>>x>>y; 49 50 if(ch=='Q') 51 { 52 if(x==y) 53 { 54 max.push_back(gra[x-1]); 55 56 } 57 max.push_back(getmax(gra,x-1,y-1)); 58 59 } 60 else if(ch=='U') 61 { 62 gra[x-1]=y; 63 } 64 65 66 } 67 for(vector<int>::iterator it = max.begin(); it < max.end(); it++) 68 { 69 cout<<*it<<endl; 70 } 71 72 max.clear(); 73 74 return 0; 75 76 }?
轉(zhuǎn)載于:https://www.cnblogs.com/bxyan/p/6905336.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的【华为2016上机试题C++】最高分是多少的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队作业8----第二次项目冲刺(bet
- 下一篇: 万水千山ABP - 弹出对话框禁用回车