Ultimate A+B
시간 제한1초메모리 제한512 MB
여러 개의 (연산 종류, 결과값) 쌍이 각각 최대 E의 오차를 가질 때, 모든 조건을 만족하는 양의 정수 순서쌍 (A, B)의 개수를 구하고 무한히 많으면 -1을 출력한다.
문제
태윤이는 코딩 고수가 되고 싶다! 태윤이는 고수가 되기 위해 우선 백준 1000번 문제 A+B를 풀어보았다. 하지만 실행 결과가 이상했다. A+B의 결과로 매번 다른 값이 출력되는 것이다! 오류를 해결하지 못한 태윤이는 A+B 문제는 잠시 미뤄두고, 대신 백준 1001번 문제 A-B와 10998번 문제 A×B를 풀어보았다. 그러나 이 문제들에서도 같은 버그가 발생했다.
이 세 문제는 두 개의 정수 , 를 입력받아 각각 , , 의 결과를 출력하는 문제이다. 하지만 태윤이가 작성한 세 코드는 매번 다른 결과를 출력했다. 태윤이는 이 버그를 해결하기 위해 디버깅을 하던 도중, 세 코드의 출력값에 를 넘지 않는 랜덤한 오차가 발생한다는 사실을 알아냈다. 여기서 오차 범위 는 세 코드의 출력값과 실제값의 차이가 최대 라는 것을 의미한다. 즉, 이다. (오차 범위 와 코드의 출력값은 정수이다.)
태윤이는 버그를 해결하기 위해 임의의 양의 정수 , 를 정해 세 코드에 입력하고, 그 출력값을 바탕으로 가능한 값을 역추적해 보기로 했다. 오차 때문에 와 의 값을 하나로 특정할 수는 없지만, 가능한 모든 쌍을 찾을 수는 있다.
태윤이가 버그를 고칠 수 있도록 주어진 세 코드의 실행 결과와 오차 범위 를 바탕으로 가능한 모든 순서쌍 의 개수를 구해보자.
입력
첫째 줄에 태윤이가 연산을 한 횟수 과 오차 가 공백으로 구분되어 주어진다.
다음 개 줄에는 연산의 종류 와 연산의 결과값 가 공백으로 구분되어 주어진다. 가 각각 일 때 연산했음을 의미한다. 가능한 순서쌍이 없는 입력은 주어지지 않는다.
출력
와 의 값으로 가능한 모든 순서쌍 의 개수를 출력한다. 단, 와 는 양의 정수이다. 개수가 무한히 많으면 -1을 출력한다.
힌트
예제 1의 경우 로 4개이다.