测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题