比較簡單,找出出現最多的頻率數,如果有次數相同,則輸出其中最小的頻率。不同的節目頻道可能有相同的名字和頻率。(一開始沒在意這句話,現在才發現。這樣提示的目的,應該就是爲了編寫的時候不用考慮重複的數據,使題目更簡單點吧。如果說會有重複的,重複的要忽略,那就比這個複雜了。)
#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;
}