简单的链表的插入应用,无骚操作可言
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef struct note
{
char name[1010];
struct note *next;
}note;
struct note *clas[2010];
int num[2010];
int main()
{
int n,m;
cin>>n>>m;
for(int i=0; i<2010; i++){
clas[i] = new note;
num[i] = 0;
clas[i]->next = NULL;
}
while(n--){
char s[11];
int l,x;
cin>>s>>l;
for(int i=0; i<l; i++){
cin>>x;
num[x]++;
note *p = new note;
strcpy(p->name,s);
p->next = NULL;
note *q = clas[x];
while(q->next){
if(strcmp(q->next->name,p->name)>0)
break;
q = q->next;
}
p->next = q->next;
q->next = p;
}
}
for(int i=1; i<=m; i++){
cout<<i<<" "<<num[i]<<endl;
note *p = clas[i]->next;
while(p){
cout<<p->name<<endl;
p = p->next;
}
}
return 0;
}