비밀 다항식

시간 제한1초메모리 제한128 MB

요약
음이 아닌 정수 계수를 가진 미지의 다항식에 대해 f(1)과 f(f(1))이 주어질 때, 그 다항식을 복원하거나 IMPOSSIBLE 또는 AMBIGUOUS를 판정한다.
난이도

보통10점 중 6점

유형
수학, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

다음과 같은 아이큐 테스트 문제를 본 적이 있을 것이다. 수열 1, 2, 3, __ 에서 다음에 올 수를 구하여라. 정답은 1616이라고 하는데, 이 수열이 다항식 f(x)=2x3−12x2+23x−12f(x) = 2x^3 - 12x^2 + 23x - 12에 대한 f(1),f(2),f(3),f(4),…f(1), f(2), f(3), f(4), \dots의 값을 나열한 것이기 때문이다. 더 일반적으로, 어떤 다항식의 값에 관한 정보가 주어졌을 때 그 다항식을 알아낼 수 있을까? 여기서는 계수가 모두 음이 아닌 정수인 다항식만 생각한다.

입력

첫 줄에는 정수 nn (0<n≤100000 < n \le 10000)이 주어지며, 이는 알아내야 할 다항식의 개수이다. 이어지는 nn개의 줄에는 각각 두 정수 f(1)f(1)과 f(f(1))f(f(1))이 주어지는데, ff는 찾아야 할 다항식이다. 이 값들은 각각 부호 있는 2의 보수 32비트 정수 범위 안에 들어간다.

출력

각 다항식에 대해, 그 계수들을 공백으로 구분하여 한 줄에 출력한다. 다항식의 차수가 dd이면, d+1d+1개의 계수를 차수가 높은 것부터 낮은 것 순서로, 즉 xdx^d의 계수부터 x0x^0의 계수까지 나열한다. 다항식이 영다항식이면 00 하나만 출력한다. 요구된 f(1)f(1)과 f(f(1))f(f(1)) 값을 갖는 다항식 ff가 존재하지 않으면, 대신 IMPOSSIBLE 이라는 단어가 담긴 줄을 출력한다. 요구된 값을 갖는 다항식 ff가 둘 이상이면, 대신 AMBIGUOUS 라는 단어가 담긴 줄을 출력한다.

예제1

  1. 예제 1

    입력
    1
    3 5
    
    예상 출력
    1 2