注意用scanf和printf,以及char s[5],再通过hash映射课程编号,节省时间。
AC代码:
#include<iostream>
#include<vector>
#include<map>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#include<list>
#include<set>
#define inf 26*26*26*10+5
using namespace std;
struct node
{
char name[5];
bool operator<(const node& aa) const
{
return strcmp(name,aa.name)<0;
}
};
vector<node> v[2505];
int main()
{
int n,m;
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
node tmp;
scanf("%s",&tmp.name);
int a;
scanf("%d",&a);
for(int j=0;j<a;j++)
{
int d;
scanf("%d",&d);
v[d].push_back(tmp);
}
}
for(int i=1;i<=m;i++)
{
int d=v[i].size();
printf("%d %d\n",i,d);
sort(v[i].begin(),v[i].end());
for(int j=0;j<v[i].size();j++)
{
printf("%s\n",v[i][j].name);
}
}
}