#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,首尾社团、连续编号、重复选择、无效名称及大量零计数 |
覆盖社团数组容量边界和完整输出顺序 |