@Misserina 欸这里说的是入门赛。当然他入门赛和月赛都交的是 AI 代码。
他的入门赛 H 的代码,根据提交记录来看只写了 2 分钟。:
#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_set>
using namespace std;
struct Team {
string name;
vector<string> members;
int match_id;
int rank;
Team(string n, vector<string> m, int id, int r)
: name(n), members(m), match_id(id), rank(r) {}
bool operator<(const Team& other) const {
if (rank == other.rank) return match_id < other.match_id;
return rank < other.rank;
}
};
unordered_set<string> qualified_pigs;
vector<Team> teams;
int main() {
int n, m, t, k;
cin >> n >> m >> t >> k;
for (int i = 0; i < n; ++i) {
string name, s1, s2, s3;
int id, r;
cin >> name >> s1 >> s2 >> s3 >> id >> r;
vector<string> members = {s1, s2, s3};
teams.push_back(Team(name, members, id, r));
}
sort(teams.begin(), teams.end());
vector<Team> qualified_teams;
for (int i = 0; i < k; ++i) {
bool found = false;
for (auto& team : teams) {
bool can_qualify = true;
for (const string& pig : team.members) {
if (qualified_pigs.count(pig) > 0) {
can_qualify = false;
break;
}
}
if (can_qualify) {
qualified_teams.push_back(team);
for (const string& pig : team.members) {
qualified_pigs.insert(pig);
}
found = true;
break;
}
}
if (!found) break;
}
cout << qualified_teams.size() << endl;
for (auto& team : qualified_teams) {
cout << team.name << " ";
for (const string& pig : team.members) {
cout << pig << " ";
}
cout << endl;
}
return 0;
}