#jag2017autumnb. [jag2017autumn_b]Tournament Chart
[jag2017autumn_b]Tournament Chart
问题描述
在 21XX 年,日本算法大奖赛(JAG)已经成为最受欢迎的脑力运动赛事之一。
JAG 是一项淘汰赛。今年,将有 名选手参加 JAG。一个比赛图表用字符串表示。[[a-b]-[c-d]]
是一个简单的例子。在这种情况下,有 4 个名字分别为 a、b、c 和 d 的选手,并且所有比赛描述如下:
- 比赛 1 是 a 和 b 之间的比赛。
- 比赛 2 是 c 和 d 之间的比赛。
- 比赛 3 是[比赛 1 的胜者]和[比赛 2 的胜者]之间的比赛。
更准确地说,比赛图表遵循以下 BNF:
- ::= | "[" "-" "]"
- ::= "a" | "b" | "c" | ... | "z"
你作为 JAG 的主席,计划公布今年 JAG 比赛的结果。但是,你犯了一个错误,丢失了所有比赛的结果。幸运的是,你找到了之前打印的比赛图表。当然,它不包含任何结果。因此,你向每个选手询问了在比赛中获胜的次数,并以 "选手 赢得 次" 的形式得到了 个信息。
现在,你的任务是确定所有这些回答是否可能是真实的。
输入
输入包括一个格式如下的单独测试用例。
表示比赛图表。 符合上述 BNF。接下来的 行表示获胜次数的信息。第 行由一个小写字母 和一个非负整数 ( 以空格分隔组成,这意味着选手 赢得 次。注意, () 表示选手数量,并且通过字符串 可以确定。可以假设每个字母 都是不同的。保证 正好包含每个 一次,并且不包含任何其他小写字母。
输出
如果回答对于比赛图表是有效的,请在一行中打印 Yes
。否则,在一行中打印 No
。
示例输入 1
\[\[m-y\]-\[a-o\]\]
o 0
a 1
y 2
m 0
示例输出 1
Yes
示例输入 2
\[\[r-i\]-\[m-e\]\]
e 0
r 1
i 1
m 2
示例输出 2
No