首页 > 试题广场 >

记票统计

[编程题]记票统计
  • 热度指数:135426 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}某场选举一共有 n 位候选人入选,候选人的名字均由大写字母构成,且互不相同,使用 c_1, c_2, \dots, c_n 表示。
\hspace{15pt}选举结束后,统计了 m 张选票,每张选票上均写有候选人的名字,使用 v_1, v_2, \dots, v_m 表示。
\hspace{15pt}求解每个候选人获得的票数。特别地,如果某张选票上的候选人名字不在候选名单中,则该票视为无效票。你需要同时统计无效票的数量。

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 100\right) 代表候选人数。
\hspace{15pt}第二行输入 n 个长度为 1 \leqq {\rm len}(c_i) \leqq 10、仅由大写字母构成的字符串 c_1, c_2, \dots, c_n,代表候选人的名字。保证候选人的名字互不相同。
\hspace{15pt}第三行输入一个整数 m \left(1 \leqq m \leqq 100\right) 代表投票人数。
\hspace{15pt}第四行输入 m 个长度为 1 \leqq {\rm len}(v_i) \leqq 10、仅由大写字母构成的字符串 v_1, v_2, \dots, v_m,代表投票内容。


输出描述:
\hspace{15pt}对于每一位候选人,新起一行。先输出其名字,随后输出一个空格、一个冒号、一个空格作为间隔,最后输出其获得的票数。形如 c_i \texttt{ : } {\rm numbers}_i,其中 c_i 是候选人的名字,{\rm numbers}_i 是候选人的票数。
\hspace{15pt}最后一行以相同的格式输出无效票的数量。形如 \texttt{Invalid : } {\rm numbers},其中 {\rm numbers} 是无效票的数量。
示例1

输入

4
A B C D
8
A D E CF A GG A B

输出

A : 3
B : 1
C : 0
D : 1
Invalid : 3

说明

\hspace{15pt}在这个样例中,\texttt{E},\texttt{CF},\texttt{GG} 三张票是无效的。

这道题你会答吗?花几分钟告诉大家答案吧!