Home => ProblemSet => 200.400-02:麻将
Problem1590--200.400-02:麻将

1590: 200.400-02:麻将

Time Limit: 1 Sec  Memory Limit: 128 MB  Submit: 0  Solved: 0
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

麻将是一种起源于中国的益智游戏。在一局麻将中,每一名牌手需要在摸牌与打牌的过程中构建自己的手牌,从而逐步达到名为"胡牌"的目标牌型。同时,根据规则的不同,麻将中还存在牌手与牌手间进攻与防守的博弈,其中的策略蕴含着很大的学问。下图展示了传统麻将中的"万"字麻将牌,从左到右依次为一万到九万。

在这一题中,我们简化并推广了麻将的玩法,得到一种广义麻将。具体的,广义麻将中只包含万字麻将牌,共有 n 种,分别为一万到n万(n 可能会大于 9)。比如说,在 n=6 时,广义麻将中就只会出现如下六种麻将牌。



同时,在广义麻将中,每一种麻将牌的数量以及每个牌手手牌的数量均没有限制,它们都可以有任意多张。
为了达到"胡牌",牌手需要使用自己手上的麻将牌来凑出面子。在一局广义麻将的游戏中,牌手会预先约定两个数字 x 和 y。这两个数字被用于定义广义麻将中的两种面子,刻子和顺子。
  • 刻子:相同的 x 张牌组成一组刻子。下图分别展示了 x=3 和 x=2 时的两个刻子,他们分别使用了三张三万和两张三万。
  • 顺子:编号连续的 y 张牌组成一组顺子。下图左侧分别展示了 y=3 和 y=2 时的两个顺子,他们分别使用了四五六万和七八万。注意右侧并不是 y=2 时的一个顺子(即使 n=9),因为一万和九万编号不相邻。
当一副牌能分成若干组面子且无余牌时,我们就说它能胡牌。(如果你对麻将比较熟悉,可以发现此处的胡牌规则与传统的麻将规则并不相同:这儿的胡牌并不需要有雀头。)
下图展示了在参数为 n=9,x=3,y=3 的广义麻将中,包含 15 张麻将牌的一副手牌(它对应本题的第一个样例)。


这一副手牌处于胡牌状态。如下图所示,这副手牌可以被拆分为一万和九万的刻子,以及一二三万、四五六万和六七八万的顺子。



现在对于一个给定的 x,y,以及一副广义麻将的手牌,请你判断其能否胡牌。
如果能胡,输出 Yes,否则输出 No。




Input

第一行输入三个数,依次表示 n(1≤n≤103),x,y(1≤x,y≤109)。
第二行输入 n 个数,表示序列 {a},其中 ai(0≤ai≤109)表示手牌中有 ai 张编号为 i 的牌。

Output

如果能胡,输出 Yes,否则输出 No。

Sample Input Copy

9 3 3
4 1 1 1 1 2 1 1 3

Sample Output Copy

Yes

HINT

样例二:
输入:
9 3 4
2 1 0 2 2 2 0 1 2
输出:
No



40%数据: 保证 n=x=y=3。
30%数据: 保证 y=n+1。
30%数据: 无特殊限制。
对于 100% 的数据,保证  n≤1000, 1≤x,y≤109,0≤ai≤109

Source/Category