A22565. 投票(vote)
填空题
较难
知识点
题目描述
投票(vote)
题目描述
这天,某个班级采用网络投票的方式选举班长,经过网络上公开投票后,每位参选的同学都获得了或多或少的支持票数。但是Q老师不希望参选的同学把心思都放在拉票上,为了尽量选出来综合优秀的同学,他决定获得票数最多的同学资格作废,由获得票数次大的同学入选。如果有多个同学的票数都是最多,那么这些同学的资格全部作废。如果所有同学的票数都相同,本次选举作废。
现在告诉你所有同学获得的票数,请你计算出最终入选的同学票数是多少,如果选举作废了,请输出No。
输入格式
第一行输入一个正整数n,表示参选同学个数。
第二行n个整数ai,表示第i个同学获得的票数。
输出格式
按题目要求,输出入选同学的票数,或者No。
样例输入1
5
3 3 2 2 1样例输出1:
2样例输入2:
2
1 1样例输出2:
No参考答案
#include<bits/stdc++.h>
using namespace std;
int maxxx=-1,maxx=-1;//maxxx为最大值,maxx为次大值,注意赋值最小,a数组数据都是大于等于0的数,故赋值-1
int a[105];
int main(){
int n,x;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>maxxx){//打擂台更新最大值
maxx=maxxx;//则原来的最大值变为次大值
maxxx=a[i];//更新最大值
}else if(a[i]>maxx&&a[i]<maxxx){//比次大值大,但比最大值小时,也要注意更新次大值
maxx=a[i];
}
}
if(maxx==-1){//若次大值没有被更新,则无次大值,投票作废
cout<<"No";
}else{
cout<<maxx;
}
return 0;
}
上一题
下一题