#P1412. Equals are Equals

Equals are Equals

题目描述

辛普森先生带着些许疲惫起床了,这又是需要辛勤工作的一天。

他的办公桌上堆满了等待批改的学生数学作业。这些作业上的答案看起来就像墨水污渍一样杂乱无章。学生们的"创造力"让他头疼不已——他们用各种不同的方式解答每道题目。当然,辛普森先生自己准备的参考答案是绝对正确的,而且从审美角度来看也是最完美的。

有些学生写出了与参考答案等价的代数表达式,但形式上却大相径庭;有些表达式虽然不等价,但看起来十分相似;只有极少数学生的答案与参考答案完全一致。

他的职责是检查每个表达式是否与参考答案数学等价,以避免将实际等价的表达式误判为"错误"——即便这些表达式不符合他的审美标准。在连续检查了五天之后,他突然站起来大喊:"我受够了!必须找人帮忙!"

任务要求

你需要编写一个程序,帮助辛普森先生判断学生的答案是否与"正确"答案等价。作业中的代数表达式是包含变量aazz的多元多项式,例如: • (a+b2)(ab2)(a + b^2)(a - b^2)

ax2+2bx+cax^2 + 2bx + c

(x2+5x+4)(x2+5x+6)+1(x^2 + 5x + 4)(x^2 + 5x + 6) + 1

输入格式

输入由多个数据块组成。每个数据块包含:

  1. 第一行是辛普森先生的参考答案
  2. 随后若干行是学生答案
  3. 以单独一行英文句号..结束

输入末尾再用一个单独的..表示所有数据结束。

每个表达式可能包含: • 小写字母aa-zz

• 数字00-99

• 运算符++-^

• 圆括号(())

• 空格(但不会出现在连续数字之间)

输出格式

对于每个学生答案: • 若与参考答案等价,输出"yesyes"

• 否则输出"nono"

每个数据块处理完毕后输出一个单独的..

样例输入 1

a+b+c
(a+b)+c
a-(b-c)+2
.
4ab
(a - b)(0-b+a) - 1a ^ 2 - b ^ 2
2 b 2 a
.
108 a
2 2 3 3 3 a
4 a^1 27
.
.

样例输出 1

yes
no
.
no
yes
.
yes
yes
.

数据约定

  1. 表达式长度不超过8080个字符

  2. 展开后的表达式: • 变量次数不超过1010

    • 系数绝对值不超过10910^9

来源 Japan 2002 Kanazawa