前言
正文
参考题解
#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
/* 输入每门课程选修的学生列表,输出待查询学生选修的所有课程(升序排序) */
int main(){
int n,k,ci,ni;
string name;
map<string,vector<int>> mp;
scanf("%d%d",&n,&k);
for(int i=0;i<k;i++){
scanf("%d%d",&ci,&ni);
for(int j=0;j<ni;j++){
cin>>name;
mp[name].push_back(ci);
}
}
vector<int> *course=NULL;
for(int i=0;i<n;i++){
cin>>name;
//这里注意是传引用,需用指针来接收,否则最后一个测试点会超时
course=&mp[name];
sort(course->begin(),course->end());
int len=course->size();
printf("%s %d",name.c_str(),len);
for(auto it=course->begin();it!=course->end();it++)
printf(" %d",*it);
printf("\n");
}
return 0;
}