版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
题目
样例输出
1 4
ANN0
BOB5
JAY9
LOR6
2 7
ANN0
BOB5
FRA8
JAY9
JOE4
KAT3
LOR6
3 1
BOB5
4 7
BOB5
DON2
FRA8
JAY9
KAT3
LOR6
ZOE1
5 9
AMY7
ANN0
BOB5
DON2
FRA8
JAY9
KAT3
LOR6
ZOE1
题解1 C++
两个测试用例不通过
#include<iostream>
#include<algorithm>
#include<string>
#define STUSIZE 100
#define COUSIZE 100
using namespace std;
class Course {
public:
string stu[STUSIZE];
int size = 0;
};
int cmp(string str1, string str2) {
return str1 < str2;
}
int main() {
int totalStu, totalCou;
cin >> totalStu >> totalCou;
Course course[COUSIZE];
for (int i = 0; i < totalStu; i++) {
string stuName;
int stuCouTotal;
cin >> stuName >> stuCouTotal;
for (int j = 0; j < stuCouTotal; j++) {
int couNum;
cin >> couNum;
course[couNum].stu[course[couNum].size] = stuName;
course[couNum].size++;
}
}
for (int i = 0; i < COUSIZE; i++) {
if (course[i].size != 0) {
sort(course[i].stu, course[i].stu + course[i].size,cmp);
}
}
for (int i = 0; i < COUSIZE; i++) {
if (course[i].size != 0) {
cout << i << " " << course[i].size << "\n";
for (int j = 0; j < course[i].size; j++) {
cout << course[i].stu[j] << "\n";
}
}
}
system("pause");
}
题解2 C++
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
const int maxn = 2550;
vector<string>course[maxn];
int main() {
int n, k;
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++) {
string name;
int c, x;
cin >> name >> c;
for (int j = 0; j < c; j++) {
scanf("%d", &x);
course[x].push_back(name);
}
}
for (int i = 1; i <= k; i++) {
printf("%d %d\n", i, course[i].size());
sort(course[i].begin(), course[i].end());
for (int j = 0; j < course[i].size(); j++) {
printf("%s\n", course[i][j].c_str());
}
}
return 0;
}