who is the best?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 929 Accepted Submission(s): 539
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
问谁被最多人喜欢,如果有重复的,输出序号最小的
思路: 用数组保存,找最大的,相同则比较编号即可
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
#define N 200
int a[N];
int main()
{
int T,n,t;
scanf("%d",&T);
while(T--)
{
memset(a,0,sizeof(a));
scanf("%d",&n);
int maxn=-1,v;
for(int i=0;i<n;i++)
{
scanf("%d",&t);
a[t]++;
}
for(int i=1;i<=n;i++)
{
if(maxn<a[i])
{
maxn=a[i];
v=i;
}
if(maxn==a[t]&&v>i)
v=i;
}
printf("%d\n",v);
}
return 0;
}