比较简单,找出出现最多的频率数,如果有次数相同,则输出其中最小的频率。不同的节目频道可能有相同的名字和频率。(一开始没在意这句话,现在才发现。这样提示的目的,应该就是为了编写的时候不用考虑重复的数据,使题目更简单点吧。如果说会有重复的,重复的要忽略,那就比这个复杂了。)
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<math.h>
#include<algorithm>
using namespace std;
struct node
{
int sum;
int fre;
node(int s=0,int f=0)
{
sum=s;
fre=f;
}
};
bool compare(node a,node b)
{
if(a.sum!=b.sum) return a.sum>b.sum;
return a.fre<b.fre;
}
int main()
{
int t;
scanf("%d",&t);
char s[60];
while(t--)
{
int n;
scanf("%d",&n);
node num[100100];
int i;
int index=0,tem;
for(i=0;i<n;i++)
{
scanf("%s%d",s,&tem);
num[tem-11111].fre=tem;
num[tem-11111].sum++;
}
sort(num,num+100100,compare);
printf("%d\n",num[0].fre);
}
return 0;
}