#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <map>
#include <set>
using namespace std;
const int P=26;
int hashfunc(char s[])
{
int id=0;
for(int i=0;i<3;i++)
{
id=(id*P+s[i]-'A');
}
id=id*10+(s[3]-'0');
return id;
}
set<int> a[175760];
int main()
{
freopen("in.txt","r" ,stdin);
int N,K;
scanf("%d %d",&N,&K);
for(int i=0;i<K;i++)
{
int k,t;//k:课程
scanf("%d %d",&k,&t);
for(int j=0;j<t;j++)
{
char s[10];
scanf("%s",s);
int tid=hashfunc(s);
a[tid].insert(k);
}
}
for(int i=0;i<N;i++)
{
char s[10];
scanf("%s",s);
int tid=hashfunc(s);
printf("%s %d",s,a[tid].size());
for(set<int>::iterator it=a[tid].begin();it!=a[tid].end();it++)
{
printf(" %d",*it);
}
printf("\n");
}
return 0;
}
1039. Course List for Student (25) --hash字符串26进制用法
最新推荐文章于 2022-08-19 21:15:29 发布