3957: 扑克牌 [CSP-J 2024] (poker)

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:7 解决:5

题目描述

小 P 从同学小 Q 那儿借来一副  张牌的扑克牌。

本题中我们不考虑大小王,此时每张牌具有两个属性:花色和点数。花色共有 4 种:方片、草花、红桃和黑桃。点数共有 13 种,从小到大分别为 23456789。注意:点数 10 在本题中记为 

我们称一副扑克牌是完整的,当且仅当对于每一种花色和每一种点数,都恰好有一张牌具有对应的花色和点数。由此,一副完整的扑克牌恰好有 4×13=52 张牌。以下图片展示了一副完整的扑克牌里所有的 52 张牌。

小 P 借来的牌可能不是完整的,为此小 P 准备再向同学小 S 借若干张牌。可以认为小 S 每种牌都有无限张,因此小 P 可以任意选择借来的牌。小 P 想知道他至少得向小 S 借多少张牌,才能让从小 S 和小 Q 借来的牌中,可以选出 52 张牌构成一副完整的扑克牌。

为了方便你的输入,我们使用字符  代表方片,字符  代表草花,字符  代表红桃,字符  代表黑桃,这样每张牌可以通过一个长度为 2 的字符串表示,其中第一个字符表示这张牌的花色,第二个字符表示这张牌的点数,例如  表示草花  表示黑桃 (黑桃 10)。

输入

从文件 poker.in 中读入数据。

输入的第一行包含一个整数  表示牌数。

接下来  行:

每行包含一个长度为 2 的字符串描述一张牌,其中第一个字符描述其花色,第二个字符描述其点数。

输出

输出到文件 poker.out 中。

输出一行一个整数,表示最少还需要向小 S 借几张牌才能凑成一副完整的扑克牌。

样例输入 复制

1
SA

样例输出 复制

51

提示

输入数据1:

1
SA

输出数据1:

51


输入数据2:

4

DQ
H3
DQ
DT

输出数据2:

49


输入数据3:

52
DA
CA
HA
SA
D2
C2
H2
S2
D3
C3
H3
S3
D4
C4
H4
S4
D5
C5
H5
S5
D6
C6
H6
S6
D7
C7
H7
S7
D8
C8
H8
S8
D9
C9
H9
S9
DT
CT
HT
ST
DJ
CJ
HJ
SJ
DQ
CQ
HQ
SQ
DK
CK
HK
SK

输出数据3:

0

说明/提示

【样例 1 解释】

这一副牌中包含一张黑桃 ,小 P 还需要借除了黑桃  以外的 51 张牌以构成一副完整的扑克牌。

【样例 2 解释】

这一副牌中包含两张方片 、一张方片 (方片 10)以及一张红桃 3,小 P 还需要借除了红桃 3、方片  和方片  以外的 49 张牌。

【样例 3 解释】

这一副扑克牌是完整的,故不需要再借任何牌。

该样例满足所有牌按照点数从小到大依次输入,点数相同时按照方片、草花、红桃、黑桃的顺序依次输入。

【数据范围】

对于所有测试数据,保证:152,输入的  个字符串每个都代表一张合法的扑克牌,即字符串长度为 2,且第一个字符为  中的某个字符,第二个字符为 23456789 中的某个字符。

测试点编号 特殊性质
1 1 A
24 52 A
57 52 B
810 52

特殊性质 A:保证输入的  张牌两两不同。

特殊性质 B:保证所有牌按照点数从小到大依次输入,点数相同时按照方片、草花、红桃、黑桃的顺序依次输入。

附件下载

poker.zip


来源/分类