Note
- char[]映射到int(26进制to10进制)
- 注意char数组的定义!!尽量定义多一位!(字符串最后一个字符应该为’/0’)
Code:
#include<bits/stdc++.h>
using namespace std;
int tonum(char s[]){
int sum=s[3]-'0';
for(int i=2;i>=0;i--){
sum=sum*26+(s[i]-'A');
}
return sum;
}
vector<int> v[175860];
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
int n,kk,index,nii,id;
char name[5];
scanf("%d%d",&n,&kk);
for(int i=0;i<kk;i++){
scanf("%d%d",&index,&nii);
for(int j=0;j<nii;j++){
scanf("%s",name);
id=tonum(name);
v[id].push_back(index);
}
}
for(int i=0;i<n;i++){
scanf("%s",name);
printf("%s",name);
id=tonum(name);
sort(v[id].begin(), v[id].end());
printf(" %d",v[id].size());
for(int i=0;i<v[id].size();i++)
printf(" %d",v[id][i]);
printf("\n");
}
return 0;
}