1039 Course List for Student(25 分)

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
vector<int>stu[maxn];
int hashT(char s[])
{
    int ans=0;
    for(int i=0;i<3;i++)ans=ans*26+s[i]-'A';
    ans=ans*10+s[3]-'0';
    return ans;
}
int main()
{
    int k,n;
    scanf("%d%d",&n,&k);
    while(k--)
    {
        int index,cnt;
        scanf("%d%d",&index,&cnt);
        char s[10];
        while(cnt--)
        {
            scanf("%s",s);
            int num=hashT(s);
            stu[num].push_back(index);
        }
    }
    while(n--)
    {
        char s[10];
        scanf("%s",s);
        int num=hashT(s);
        sort(stu[num].begin(),stu[num].end());
        printf("%s %d",s,stu[num].size());
        for(int i=0;i<stu[num].size();i++)printf(" %d",stu[num][i]);
        printf("\n");
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • char和int的映射,使用name[maxn][20]数组,这个题目因为名字没有重复出现,直接映射就可以 (之前...
    DaiMorph阅读 734评论 0 0
  • 题目描述 浙江大学有40000个学生,并开2500门课,给出所有课程的学生列表,输出每个学生的课程列表 输入 第一...
    6J阅读 3,610评论 0 2
  • 分为三种情况,分别push进去
    DaiMorph阅读 2,839评论 0 0
  • 22天的相知相伴,让彼此互不认识的人,齐聚在这里。时间说长不长,说短不短,但足够一个人改变和成长。 半年前的某一天...
    贝微尘阅读 3,897评论 12 8
  • 一个客户谈不下来:可能你的产品、价格等都没问题,但是客户就是签不下来,为什么?因为你没有读懂这个客户。 一个员工搞...
    曹山_71aa阅读 1,833评论 0 0