번호 숨기기
시간 제한1초메모리 제한128 MB
원래 수의 11배를 원래 자릿수만큼 잘라 만든 값이 주어질 때, 원래 수를 복구하거나 불가능하면 IMPOSSIBLE을 출력한다.
문제
알렉스는 누군가 자신의 전화번호부를 들여다보는 것을 극도로 경계한다. 그래서 그는 모든 전화번호를 자신만 해독할 수 있는 형태로 바꾸어 적는다. 방법은 다음과 같다.
번호를 그대로 적는 대신, 먼저 그 번호를 왼쪽으로 한 자리 옮긴 값(즉, 10을 곱한 값)을 원래 번호에 더한다. 예를 들어 번호가 123이면 1230 + 123 = 1353을 계산한다.
그런 다음 결과가 평범한 전화번호처럼 보이도록, 왼쪽에서부터 잘라내어 원래 번호와 자릿수가 같아지게 만든다. 위 예에서는 마지막 세 자리만 남겨 123 대신 353을 적는다.
전화번호부에 적힌 값이 주어질 때, 원래 전화번호를 복원하라. 적힌 값이 손상되었을 수도 있으므로, 어떤 원래 번호로도 그 값을 만들 수 없는 경우가 있다. 그럴 때는 IMPOSSIBLE을 출력한다.
입력
입력은 하나 이상의 테스트 케이스로 이루어지며, 각 케이스는 한 줄에 주어진다. 각 케이스는 자릿수가 1,000,000 미만인 양의 정수 하나로, 전화번호부에 적힌 값이다.
입력의 마지막 줄에는 0 하나만 있으며, 이는 데이터의 일부가 아니므로 처리하지 않는다.
출력
각 테스트 케이스마다 다음 형식으로 한 줄을 출력한다.
k. result
여기서 k는 테스트 케이스 번호(1부터 시작)이고, 마침표 뒤에는 공백 하나가 오며, result는 복원한 원래 전화번호이거나, 복원할 수 없는 경우 단어 IMPOSSIBLE이다.