RE。。。
带更正
#include<iostream>
#include<algorithm>
using namespace std;
#include<cstdio>
#include<cstring>
struct people
{char name[100];int sum_class;int cl[2005];
}a[40000],b[40000];
int cmp(people a,people b)
{char t[100],l[100];strcpy(t,a.name);strcpy(l,b.name);t[strlen(t)-2]='\0';l[strlen(l)-2]='\0';if(strcmp(t,l)<0)return 1;return 0;
}
int main()
{int n,m;cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i].name>>a[i].sum_class;for(int j=0;j<a[i].sum_class;j++){cin>>a[i].cl[j];}}int ans;for(int i=1;i<=m;i++){ans=0;for(int j=0;j<n;j++){for(int k=0;k<a[j].sum_class;k++){if(i==a[j].cl[k]){b[ans]=a[j];ans++;break;}}}printf("%d %d\n",i,ans);sort(b,b+ans,cmp);for(int i=0;i<ans;i++)puts(b[i].name);}return 0;
}