Nathan O. Davis는 종합시스템학과 학생이다.
오늘 수업 주제는 오디오 신호 처리다. 과제 중 하나는 주어진 오디오 신호를 처리하는 프로그램을 작성하는 것이었다. Nathan은 수업에서 받은 신호 데이터를 USB 메모리에 복사해 집으로 가져왔다.
과제를 시작하려던 참에 USB 메모리를 바닥에 떨어뜨렸다. 내용을 확인해 보니 오디오 신호 데이터가 손상되어 있었다.
복사해 온 오디오 신호에는 다음 성질이 있다.
당황한 Nathan이 도움을 요청했다. USB 메모리에서 신호를 복구해 봤지만 일부 표본은 값을 되살릴 수 없었다. 다행히 메타데이터에서 손상된 표본이 모두 같은 정수 값이었다는 사실을 확인했다.
USB 메모리에서 뽑아낸 손상된 오디오 신호를 입력으로 받아 원래 신호를 유일하게 복구할 수 있는지 판정하는 프로그램을 작성하라.
입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합의 형식은 다음과 같다.
N
a1 a2 ... aN
첫 줄에는 표본의 개수 N (2≤N≤1000)이 주어진다. 둘째 줄에는 손상된 신호의 표본 N개가 공백으로 구분되어 주어진다. i번째 값 ai는 문자 x이거나 −109 이상 109 이하의 정수다. x는 i번째 표본이 손상되었다는 뜻이고, 정수는 그 표본의 값이다.
입력의 끝은 0 하나만 있는 줄로 표시한다. 이 줄은 데이터 집합에 포함되지 않는다. 데이터 집합의 개수는 100개를 넘지 않는다.
각 데이터 집합마다 한 줄에 답을 출력한다. 원래 신호를 유일하게 복구할 수 있으면 손상된 표본의 값을 출력한다. 가능한 값이 둘 이상이면 ambiguous를, 가능한 값이 하나도 없으면 none을 출력한다.
손상된 표본의 값은 임의의 정수이고, 입력에 주어지는 값처럼 −109 이상 109 이하로 제한되지 않는다. 손상된 표본이 하나도 없는 데이터 집합은 신호가 위에 적힌 성질을 모두 만족하면 어떤 값이든 가능하므로 ambiguous를 출력하고, 성질을 어기면 none을 출력한다.