#6919. B.社团(Club)

B.社团(Club)

社团(Club)

题目描述

新生入学时需要填写社团志愿。小澄负责统计各社团被多少名学生填写,请你编写程序帮助她完成统计。

每名学生填写三个社团志愿。如果同一名学生重复填写某个社团,该社团也只计算这名学生一次。

请按照社团名称在输入中出现的顺序,输出每个社团的报名人数。

输入格式

第一行包含两个整数 (N,M),分别表示学生人数和社团数量,满足 (1\le N\le1000)、(1\le M\le50)。

接下来 (M) 行,每行包含一个社团名称。

最后 (N) 行,每行包含三个以空格分隔的社团名称,表示一名学生填写的三个志愿。

所有社团名称均由大写英文字母组成,长度不超过 (20)。

输出格式

按输入中的社团顺序输出 (M) 行。每行包含一个社团名称和填写该社团的学生人数,两者之间用空格分隔。

样例 1

输入

4 5
DANCE
MUSIC
CODING
DRAMA
PHOTOGRAPHY
MUSIC DRAMA DANCE
DANCE MUSIC PHOTOGRAPHY
MUSIC CODING DANCE
DRAMA DANCE CODING

输出

DANCE 4
MUSIC 3
CODING 2
DRAMA 2
PHOTOGRAPHY 1

样例 2

输入

4 3
DANCE
MUSIC
CODING
MUSIC DANCE DANCE
DANCE MUSIC CODING
MUSIC CODING CODING
DANCE DANCE CODING

输出

DANCE 3
MUSIC 3
CODING 3

说明

第一名学生填写了两次 DANCE,统计时只算一人。CODING 的重复填写也按相同规则处理。

评分说明

每组包含多笔测试数据,只有答对该组的全部数据才能获得对应分数。

测试组 分值 限制
第一组 60 分 每名学生填写的三个社团互不重复
第二组 40 分 无特殊限制
测试点编号 层级 N M 数据特征 覆盖点与设计目的
1 弱数据 1 唯一学生连续三次选择同一社团 最小规模;检查单人重复选择只能计一次
2 4 3 包含重复选择、未登记名称和完全无效选择 检查去重、无效名称过滤及零贡献学生
3 正常数据 6 5 多名学生交叉选择,部分学生重复填写 检查 check 数组能否在每名学生处理后正确清零
4 8 正序、逆序、重复、无效名称及未被选择情况混合 检查社团匹配顺序、累计统计和多种情况组合
5 极限数据 12 50 M=50,首尾社团、连续编号、重复选择、无效名称及大量零计数 覆盖社团数组容量边界和完整输出顺序