항등식 판별기
시간 제한1초메모리 제한128 MB
x와 sin, cos, tan으로 이루어진 역폴란드 표기 수식이 주어질 때, 정의되는 모든 곳에서 0인지 판정한다.
문제
이라는 식은 아마 본 적이 있을 것이고, 역시 익숙할 것입니다. 그런데 이 성립한다는 사실도 알고 있었나요? 그렇다면 도 성립할까요? 마지막 식은 거짓입니다. 하지만 그냥 믿지만 말고, 주어진 대수식이 (정의되는 모든 곳에서) 항상 0으로 간단히 정리되는지 판별하는 프로그램을 작성하세요.
입력
입력은 여러 개의 테스트 케이스로 이루어지며, 각 테스트 케이스는 한 줄에 하나씩 주어집니다. 각 테스트 케이스는 정수 으로 시작하는데, 이는 하나의 수식을 나타내는 토큰의 개수입니다. 그 뒤에 오는 개의 토큰이 후위 표기법(reverse polish notation)으로 수식을 나타냅니다.
표기법은 다음과 같이 동작합니다. 처음에는 비어 있는 스택이 하나 있고, 다음 명령들이 스택의 내용을 조작합니다.
x는 변수 를 스택에 넣습니다.sin,cos,tan은 스택의 맨 위 원소를 각각 그 값의 , , 으로 바꿉니다.+,-,*는 스택의 맨 위 두 원소( 가 맨 위, 그 아래가 )를 각각 합 , 차 , 곱 로 바꿉니다.
입력은 항상 유효하며, 계산이 끝나면 스택에는 정확히 하나의 원소만 남고 그것이 원하는 수식이 됩니다. 한 줄의 길이는 최대 글자입니다. 함수의 인자에는 함수가 들어갈 수 있어 x sin sin 도 유효하지만, 이보다 더 깊게 중첩되지는 않습니다. 입력은 인 줄로 종료됩니다.
출력
각 테스트 케이스에 대해, 수식이 항상 0이면 Identity 를, 그렇지 않으면 Not an identity 를 한 줄에 출력합니다.