天梯赛真题L2-021点赞狂魔
#include<bits/stdc++.h>
using namespace std;
struct node{
string name;
set<int> q;
int p;
int ave;
}w[105];
bool cmp(struct node a,struct node b)
{
if(a.p!=b.p)
return a.p>b.p;
else
return a.ave<b.ave;
}
int main()
{
int n;
cin>>n;
for(int i = 0; i < n; i++)
{
cin>>w[i].name;
int k;
cin>>k;
w[i].ave = k;
int sum = 0;
for(int j = 0; j < k; j++)
{
int x;
cin>>x;
w[i].q.insert(x);
sum += x;
}
w[i].p = w[i].q.size();
}
sort(w,w+n,cmp);
if(n>=3)
{
for(int i = 0; i < 3; i++)
{
cout<<w[i].name;
if(i!=2)
cout<<" ";
}
}
else
{
for(int i = 0; i < n; i++)
{
cout<<w[i].name<<" ";
}
for(int i = n; i < 3; i++)
{
cout<<"-";
if(i!=2)
cout<<" ";
}
}
return 0;
}