目录
1.Course List for Student
#include<cstdio>
#include<cctype>
#include<vector>
#include<algorithm>
using namespace std;
const int N = 40010;
const int M = 26*26*26*10+1;
vector<int> martix[M];
int get_num(char a[]){
int num=0;
for(int i=0;i<3;i++){
num = num*26+(a[i]-'A');
}
num = num*10+(a[3]-'0');
return num;
}
int main(){
int n,m;
char name[5];
scanf("%d %d",&n,&m);
int num;
for(int i=0;i<m;i++){
int course,stu;
scanf("%d %d",&course,&stu);
for(int j=0;j<stu;j++){
scanf("%s",name);
num = get_num(name);
martix[num].push_back(course);
}
}
for(int i=0;i<n;i++){
scanf("%s",name);
num = get_num(name);
sort(martix[num].begin(),martix[num].end());
printf("%s %d",name,martix[num].size());
for(int j=0;j<martix[num].size();j++){
printf("% d",martix[num][j]);
}
printf("\n");
}
return 0;
}
2.Student List for Course
#include<cstdio>
#include<cctype>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
const int N = 40010;
const int M = 4;
vector<int> martix[6];
char name[N][5];
bool cmp(int a,int b){
return strcmp(name[a],name[b])<0;
}
int main(){
int m,n;
scanf("%d %d",&m,&n);
for(int i=0;i<m;i++){
int course_num;
scanf("%s %d",name[i],&course_num);
int course_id;
for(int j=0;j<course_num;j++){
scanf("%d",&course_id);
martix[course_id].push_back(i);
}
}
for(int i=0;i<n;i++){
printf("%d %d\n",i+1,martix[i+1].size());
sort(martix[i+1].begin(),martix[i+1].end(),cmp);
for(int j=0;j<martix[i+1].size();j++){
printf("%s\n",name[martix[i+1][j]]);
}
}
return 0;
}