1047 Student List for Course
可能有重名学生:用multiset
#include<map>
#include<set>
#include<vector>
#include<iostream>
using namespace std;
int main(){
int n,k,c,cr;//人数,总课数,单人课数,课
cin>>n>>k;
multiset<int>cor[2510];//可能有重名学生:用multiset
char id[4];
for(int i=0;i<n;i++){
scanf("%s",id);
int key=id[3]-'0'+10*(id[2]-'A')+260*(id[1]-'A')+6760*(id[0]-'A');//转换成int,方便排序
cin>>c;
for(int j=0;j<c;j++){
cin>>cr;cor[cr].insert(key);
}
}
for(int cr=1;cr<=k;cr++){
cout<<cr<<" "<<cor[cr].size()<<endl;
for(int id:cor[cr]){
printf("%c%c%c%d\n",id/6760+'A',id%6760/260+'A',id%260/10+'A',id%10);
}
}
return 0;
}