代@CAL522
约翰的数学从来都不是很好。由于他的成绩不好,他的父母把他送到了ACM。尽管约翰的父母在ACM上花了大量的钱,但他上课时并没有太多注意力。然而,今天他开始思考父母为他的教育付出的所有努力,他开始感到有些……内疚。所以他做出了一个决定:他要提高他的数学成绩!
然而,他刚下定决心要集中注意力,课就结束了。所以他唯一能做的就是匆匆地把黑板上的内容抄到笔记本上。今天,老师正在用未知数解释基本的算术表达式。他模模糊糊地记得,他的同学们一直在将值代入未知数,以获得表达式结果。然而,在所有的喧闹中,约翰只是以一种混乱的方式写下了表达式、值和结果。
因此,他不知道每个未知值对应哪个值,或者每个表达式对应哪个结果。这就是他需要您帮助的原因:
他想知道给定的表达式、一些值和结果,是否可能将这些值分配给未知值,以便表达式计算为甚至结果。特定的赋值对约翰来说并不重要。因为他想自己做。他只想知道这是否可能。
输入文件中的每个测试用例由两个组成:
第一行包含一系列自然数。 第一个数 n (1≤n≤5) 是表达式中将出现的未知数。 后面是一系列 n 个整数 v1...vn (0≤vi≤50) ,它们是要分配给未知数的值。 最后,有一个整数 m (0≤m≤1000) 表示表达式求值的期望结果。
第二行包含一个由小写字母(a-z)组成的算术表达式,小括号及二元运算符(加号、减号、乘号)。此表达式将包含 n 个未知数。由 n 个不同的小写字母表示,没有重复。表达式将不包含任何空格,并且在语法上始终正确,即它只是一个未知的或具有形式(e1ope2,其中 e1 和 e2 是表达式, op 是三种可能的二进制运算符之一。
输入将以一行“0 0”虚拟测试用例结束。
对于每个测试用例,如果存在未知值 v1...vn 的赋值使表达式的计算结果为 m ,则打印一行“YES”;否则为“NO”。请注意,每个值 vi 只能分配给一个未知数。
翻译 by @CAL522
## 题目背景
约翰的数学从来都不是很好。由于他的成绩不好,他的父母把他送到了ACM。尽管约翰的父母在ACM上花了大量的钱,但他上课时并没有太多注意力。然而,今天他开始思考父母为他的教育付出的所有努力,他开始感到有些……内疚。所以他做出了一个决定:他要提高他的数学成绩!
## 题目描述
然而,他刚下定决心要集中注意力,课就结束了。所以他唯一能做的就是匆匆地把黑板上的内容抄到笔记本上。今天,老师正在用未知数解释基本的算术表达式。他模模糊糊地记得,他的同学们一直在将值代入未知数,以获得表达式结果。然而,在所有的喧闹中,约翰只是以一种混乱的方式写下了表达式、值和结果。
因此,他不知道每个未知值对应哪个值,或者每个表达式对应哪个结果。这就是他需要您帮助的原因:
他想知道给定的表达式、一些值和结果,是否可能将这些值分配给未知值,以便表达式计算为甚至结果。特定的赋值对约翰来说并不重要。因为他想自己做。他只想知道这是否可能。
## 输入格式
输入文件中的每个测试用例由两个组成:
第一行包含一系列自然数。
第一个数 $n$ $(1 \le n \le 5)$ 是表达式中将出现的未知数。
后面是一系列 $n$ 个整数 $v_1...v_n$ $(0 \leq v_i \leq 50)$ ,它们是要分配给未知数的值。
最后,有一个整数 $m$ $(0 \leq m \leq 1000)$ 表示表达式求值的期望结果。
第二行包含一个由小写字母(a-z)组成的算术表达式,小括号及二元运算符(加号、减号、乘号)。此表达式将包含 $n$ 个未知数。由 $n$ 个不同的小写字母表示,没有重复。表达式将不包含任何空格,并且在语法上始终正确,即它只是一个未知的或具有形式($e_1 \quad op\quad e_2$,其中 $e_1$ 和 $e_2$ 是表达式, $op$ 是三种可能的二进制运算符之一。
输入将以一行“0 0”虚拟测试用例结束。
## 输出格式
对于每个测试用例,如果存在未知值 $v_1...v_n$ 的赋值使表达式的计算结果为 $m$ ,则打印一行“$YES$”;否则为“$NO$”。请注意,每个值 $v_i$ 只能分配给一个未知数。
------
翻译 by @[CAL522](www.luogu.com.cn/user/410422)