#include<bits/stdc++.h>
using namespace std;
//创建名字和
struct node{
string name;
int num;
};
struct node one[100];
int temp(node a, node b)
{
return a.num>b.num;
}
int main()
{
string data;
set<string> zi[100];//利用set容器的唯一性,找到去重后不同数的个数
int n;
cin>>n;
getchar();
for(int i=0;i<n;i++)
{
getline(cin,data);
int key = 0;
int flag = 1;
for(int j=0;j<data.size();j++)
{
//以空格进行分割字符串 实现.split方法
if(data[j]==' ')
{
string test = data.substr(key,j-key);
zi[i].insert(test);//插入set,实现去重
if(flag)//第一个子串为名字
{
one[i].name = test;
flag = 0;//取0,防止下次再次执行
}
key = j+1;//标记新的起点
}
else if(j==data.size()-1)
{
string test = data.substr(key,j-key+1);
zi[i].insert(test);
}
}
one[i].num = zi[i].size();//set容器大小,即为不同数字的个数
// cout<<zi[i].size();
}
if(n==1)
{
cout<<one[0].name<<" - -";
}
else if(n==2)
{
if(one[0].num>one[1].num)
{
cout<<one[0].name<<" "<<one[1].name<<" -";
}
}
else
{
sort(one,one+n,temp);
cout<<one[0].name<<" "<<one[1].name<<" "<<one[2].name;
}
return 0;
}
tips:现场没有出来了,后面才写的,不知道测试用例能不能全部通过