L2-021 点赞狂魔 (25 分)

代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
map<string ,int> mp;
vector<pair<string,pair<int,int> > > st;
bool cmp(pair<string ,pair<int,int> > a ,pair<string ,pair<int,int> > b){
if(a.second.first == b.second.first) return a.second.second < b.second.second;
return a.second.first > b.second.first;
}
int main()
{
int n ;
cin >> n;
for(int i = 0 ; i < n ; i ++){
string str;
int k;
cin >> str >> k;
vector<int> cn;
for(int i = 0 ; i < k ; i ++){
int tt;
cin >> tt;
cn.push_back(tt);
}
sort(cn.begin() , cn.end());
int m = unique(cn.begin() , cn.end()) - cn.begin();
st.push_back({str,{m , k}});
}
sort(st.begin() , st.end(),cmp);int sst =st.size() ;
for(int i = 0 ; i < min(3 , sst ) ; i ++){
cout<<st[i].first;
if(i != 2) cout<<" ";
}
for(int i = sst ; i < 3 ; i ++){
cout<<"-";
if(i != 2) cout<<" ";
}
cout<<endl;
return 0;
}