QOJ.ac

QOJ

Süre Sınırı: 1 s Bellek Sınırı: 512 MB

#19601. 같은 것은 같다

İstatistikler

Simpson 씨는 약간 피곤한 기분으로 일어났습니다. 또 하루의 고된 일이 시작되었습니다. 사무실 책상에는 검토를 기다리는 종이들이 쌓여 있었습니다. 수학 수업 문제에 대한 학생들의 답이 적혀 있었지만, 답들은 그저 잉크 얼룩처럼 보였습니다.

그의 두통은 학생들의 “창의성”에서 비롯되었습니다. 학생들은 각 문제에 갖가지 방식으로 답했습니다. 그는 각 문제에 자기만의 답을 갖고 있으며, 물론 올바르고 자신의 미적 관점에서는 가장 좋은 답입니다.

일부 학생들은 예상 답과 동치인 대수식을 썼지만, 문자로 나타낸 형태는 Simpson 씨의 답과 상당히 달랐습니다. 일부는 그의 답과 동치가 아니지만 매우 비슷해 보이는 식을 썼습니다. 그의 답과 정확히 같은 답을 쓴 학생은 몇 명뿐이었습니다.

각 식이 준비한 답과 수학적으로 동치인지 확인하는 것이 그의 의무입니다. 자신의 미적 기준에 맞지 않더라도, 동치인 식이 “오답”으로 표시되는 것을 막아야 하기 때문입니다.

그는 이미 식들을 검토하는 데 닷새를 썼습니다. 갑자기 일어나 외쳤습니다. “이제 지긋지긋해! 도움을 요청해야겠어.”

여러분은 각 답이 “올바른” 답과 동치인지 Simpson 씨가 판단하도록 돕는 프로그램을 작성해야 합니다. 종이에 적힌 대수식은 변수 기호 $a,b,\ldots,z$에 대한 정수 계수 다변수 다항식입니다. 예로 $(a+b^2)(a-b^2)$, $ax^2+2bx+c$, $(x^2+5x+4)(x^2+5x+6)+1$이 있습니다.

Simpson 씨는 종이에 적힌 그대로 각 답의 식을 입력합니다. 입력 대수식은 덧셈 연산자 +, -로 구분된 항의 나열이며, 연산자가 있으면 그 연산자로 항들을 더한 것을 나타낸다고 보장합니다. 항은 여러 인수를 나란히 적어 그 곱을 나타냅니다. 인수는 (a) 십진수 숫자열로 적힌 음이 아닌 정수, (b) 변수 기호(소문자 a부터 z 중 하나)이며 뒤에 기호 ^와 0이 아닌 숫자가 붙어 그 변수의 거듭제곱을 나타낼 수도 있는 것, 또는 (c) 괄호로 둘러싼 대수식으로 재귀적으로 정의됩니다. 연산자 +, -는 이항 연산자로만 나타나며, 피연산자의 부호를 지정하는 단항 연산자로 나타나지 않습니다.

어떤 정수가 다른 정수 또는 기호 ^ 뒤의 숫자 바로 다음에 오면, 그 정수 앞에 하나 이상의 공백을 넣겠다고 합니다. 읽기 쉽게 식의 여기저기에 공백을 넣을 수도 있지만, 한 정수의 연속한 두 숫자 사이에는 절대로 공백을 넣지 않습니다. 식은 그리 복잡하지 않습니다. 식의 -를 +로 바꾸면, 계수와 변수 거듭제곱의 곱들의 합으로 완전히 전개하더라도 변수의 $10$제곱이나 십억보다 큰 계수가 나타나지 않습니다.

입력

입력은 줄 블록들의 나열입니다. 각 블록에는 식을 하나씩 담은 줄들과 종료 줄이 있습니다. 마지막 블록 뒤에는 종료 줄이 하나 더 있습니다. 종료 줄은 마침표 하나만 있는 줄입니다.

블록의 첫 식은 Simpson 씨가 준비한 것입니다. 그 뒤의 모든 식은 학생들의 답입니다. 식에는 소문자, 숫자, 연산자 +, -, ^, 괄호 (, )와 공백이 사용됩니다. 식을 담은 한 줄의 길이는 80자를 넘지 않습니다.

출력

학생의 각 답이 예상 답과 수학적으로 동치인지에 따라 yes 또는 no만 담은 한 줄을 출력하세요. 각 블록 뒤에는 마침표 하나만 담은 줄을 출력하세요.

예제

입력 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
.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.