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;
}