L2-021 点赞狂魔

#include 
#include 
#include 
#include 
#include 
using namespace std;
#define M 100
//5
//bob 11 101 102 103 104 105 106 107 108 108 107 107
//peter 8 1 2 3 4 3 2 5 1
//chris 12 1 2 3 4 5 6 7 8 9 1 2 3
//john 10 8 7 6 5 4 3 2 1 7 5
//jack 9 6 7 8 9 10 11 12 13 14
typedef pair PII;
vector arr;
set s[M + 5];
int ind[M + 5];
int main() {
	int n;
	cin >> n;
	for (int i = 0, a; i < n; i++) {
		string name;
		cin >> name >> a;
		arr.push_back(PII(name, a));
		for (int j = 0, b; j < a; j++) {
			cin >> b;
			s[i].insert(b);
		}
	}
	for (int i = 0; i < n; i++) ind[i] = i;
	sort(ind, ind + n, [&](int i, int j) -> bool {
		if (s[i].size() != s[j].size()) return s[i].size() > s[j].size();
		return arr[i].second < arr[j].second;
		});
	for (int i = 0; i < n; i++) {
		if (i == 3) break;
		if (i) cout << " ";
		cout << arr[ind[i]].first;
	}
	if (n < 3) {
		for (int i = n; i < 3; i++) cout << " -";
	}
	return 0;
}

你可能感兴趣的:(算法题,算法,数据结构)