이건 무슨 진법이지?

각 숫자 문자열을 8진수, 10진수, 16진수로 읽은 값을 출력한다. 8이나 9가 들어 있으면 8진수 값 자리에 0을 출력한다.

쉬움3구현수학문자열완전 탐색면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

C, C++, Java 같은 프로그래밍 언어는 여러 진법의 상수를 쓸 수 있도록 접두 문자(prefix character)라는 규칙을 둔다.

8진법으로 적은 수 앞에는 숫자 0을, 16진법으로 적은 수 앞에는 0x를 붙이고, 10진법에는 아무것도 붙이지 않는다. 10진수 4660을 이 규칙대로 적으면 다음과 같다.

  • 8진법: 011064
  • 10진법: 4660
  • 16진법: 0x1234

접두 문자가 없으면 컴파일러는 그 수가 몇 진법인지 알 방법이 없다. 0x1234에서 0x가 빠지면, 사람은 16진수로 적었어도 컴파일러는 8진수나 10진수로 읽을 수 있다.

이런 상황을 가정하고, 0부터 9까지의 숫자로만 이루어진 문자열을 각각 8진수, 10진수, 16진수로 읽는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 데이터의 개수 T(1 ≤ T ≤ 10000)가 주어진다.

다음 T개의 줄에는 각각 테스트 데이터의 번호를 나타내는 정수 K와 문자열이 공백으로 구분되어 주어진다. 문자열은 0부터 9까지의 숫자로만 이루어지고, 길이는 1 이상 7 이하이며, 0으로 시작할 수 있다.

출력

각 테스트 데이터마다 한 줄에 번호 K와, 문자열을 8진수, 10진수, 16진수로 읽은 값을 이 순서대로 공백으로 구분해 출력한다. 세 값은 모두 10진수로 적는다.

문자열에 8이나 9가 들어 있으면 8진수로 읽을 수 없으므로, 8진수 자리에 0을 출력한다.