1047. Student List for Course (25)
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <algorithm>
using namespace std;
class CA
{
public:
enum{K=2501};
vector<int> cn[K];
int n,k;
void run();
inline int strnametoint(char *s);
inline char* inttostrname(int iname,char *s);
};
int CA::strnametoint(char *s)
{
return ((s[0]-'A')*100000+(s[1]-'A')*1000+(s[2]-'A')*10+(s[3]-'0'));
}
char* CA::inttostrname(int iname,char *s)
{
s[0]=iname/100000+'A';
s[1]=iname%100000/1000+'A';
s[2]=iname%1000/10+'A';
s[3]=iname%10+'0';
s[4]='\0';
return s;
}
void CA::run()
{
scanf("%d%d",&n,&k);
char sname[6];
int c,t,iname;
while(n-->0)
{
scanf("%s",sname);
iname=strnametoint(sname);
scanf("%d",&c);
while(c-->0)
{
scanf("%d",&t);
cn[t].push_back(iname);
}
}
int i,j;
for(i=1;i<=k;i++)
{
sort(cn[i].begin(),cn[i].end());
printf("%d %d\n",i,cn[i].size());
for(j=0;j<cn[i].size();j++)
{
printf("%s\n",inttostrname(cn[i][j],sname));
}
}
}
int main()
{
// freopen("test.in","r",stdin);
CA *a=new CA;
a->run();
return 0;
}