who is the best?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 129 Accepted Submission(s): 88
Problem Description
There are N people want to choose the best person. Each person select the best person
ai
, .John wants to know that who received the most number of votes.
Input
The first line contains a single integer
T(1≤T≤50)
,indicating the number of test cases.
Each test case begins with an integer N(1≤N≤100) ,indicating the number of person.
Next N lines contains an integer ai(1≤ai≤N) .
Each test case begins with an integer N(1≤N≤100) ,indicating the number of person.
Next N lines contains an integer ai(1≤ai≤N) .
Output
For each case, output an integer means who is the best person. If there are multiple answers, print the minimum index.
Sample Input
2 10 1 2 3 4 5 6 7 8 9 10 5 3 3 3 3 3
Sample Output
1 3
Source
Recommend
题意:判断谁是最好的人,也就是谁的票数最多。不过需要注意的是:如果票数一样多,则输出标号最小的那个。
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
struct node
{
int iu;
int num;
};
node bj[10000];
bool cmp(node a,node b)
{
if(a.num > b.num)
return true;
else if(a.num == b.num)
return a.iu < b.iu;
else
return false;
}
int main()
{
int n,t,i,j;
scanf("%d",&n);
while(n--)
{
scanf("%d",&t);
memset(bj,0,sizeof(bj));
int maxx = 0,num;
for(i = 0;i < t;i++)
{
scanf("%d",&j);
bj[j].iu = j;
bj[j].num++;
}
sort(bj,bj+t,cmp);
printf("%d\n",bj[0].iu);
}
return 0;
}