L2-021. 点赞狂魔
问题分析
问题的目的就是找到点赞特性标签种类最多的三个人,不够三个补‘-’,统计每个人的特性标签种类,降序排序找到前三个就是点赞狂魔。
代码
#include <bits/stdc++.h>
using namespace std;
struct p {
string name;
int count;
int k;
} node[101];
bool cmp (p a,p b) {
if (a.count == b.count)
return a.k < b.k;
return a.count > b.count;
}
int main() {
int n,m,num;
cin >> n;
string str;
set<int> s;
for (int i = 0; i < n; i++) {
cin >> str >> m;
for (int j = 0; j < m; j++) {
cin >> num;
s.insert(num);
}
node[i].name = str;
node[i].count = s.size();
node[i].k = m;
s.clear();
}
sort(node,node+n,cmp);
int i;
for (i = 0; i < n && i < 3; i++) {
if (i)
cout << " ";
cout << node[i].name;
}
for (int j = 0;j < 3 - i; j++) {
cout << " -";
}
return 0;
}