这个题用sort和unique貌似会超时?所以直接使用map储存数据并使用迭代器进行访问,在输入数据的同时直接得到最大票数,然后遍历map记录最大票数的数量,并判定是否所有票数都为最大票数。

#include<map>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int t,n,bianhao;
    cin>>t;
    while(t--){
        int max1=0,geshu=1,sum=0;
        cin>>n;
        map<int, int>a;
        for(int i=0;i<n;i++){
            cin>>bianhao;
            a[bianhao]++;
            max1=max(max1,a[bianhao]);//记录最大票数
        }
        map<int,int>::iterator it;
        for(it=a.begin();it!=a.end();++it){
            if(it->second!=max1) geshu=0;//判断是否有票数跟最大票数不同
            else sum++;
        }
        if(geshu) cout<<-1<<endl;
        else{
            cout<<sum<<endl;
            for(it=a.begin();it!=a.end();++it)
                if(it->second==max1)
                    cout<<it->first<<' ';
            cout<<endl;
        }
    }
    return 0;
}