题目地址 L2-021 点赞狂魔 (25 分)

只能靠写写水题来快乐了
#include <bits/stdc++.h>
using namespace std;
int n, k, num;
struct Node{
	string name;
	double sum;
	set<int> st;
}N[110];
bool cmp(Node a,Node b) {
	if(a.st.size() != b.st.size())
		return a.st.size() > b.st.size();
	return a.sum < b.sum;
}
int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; i++) {
		cin>>N[i].name>>k;
		for(int j = 1; j <= k; j++) {
			cin>>num;
			N[i].st.insert(num);
		}
		N[i].sum = k * 1.0 / N[i].st.size();
	}
	sort(N + 1,N + n + 1,cmp);
	for(int i = 1; i <= 3; i++) {
		i == 3 ? printf("%s\n", N[i].name != "" ? N[i].name.c_str() : "-") : printf("%s ", N[i].name != "" ? N[i].name.c_str() : "-");
	}
	return 0;
}