만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

진법 체계

시간 제한3초메모리 제한1024 MB

요약
K자리 숫자열 중 십진수 값 X가 D보다 크고, 같은 숫자열을 16진수로 읽은 값 Y가 X-D로 나누어떨어지는 것을 모두 찾습니다.
난이도

보통10점 중 7점

유형
백트래킹, 정수론
정답자
아직 제출이 없습니다

문제

호디슬라프는 십진법 외에도 십육진법 같은 다른 진법이 있다는 것을 알게 되었다. 같은 표기가 두 진법에서 어떤 값을 나타내는지 알고 싶다. KK자리 표기에서 십육진수 값이 십진수 값으로 나누어떨어질 수 있을까? 십진수 값에서 주어진 수 DD를 빼면 결과가 달라질까?

표기는 숫자들의 나열이다. 0부터 9까지의 숫자를 쓸 수 있으며, 이 숫자들은 십진법과 십육진법에서 모두 쓰인다. 표기는 숫자 0으로 시작할 수 없다. 십진수 값은 표기를 십진수로 읽은 값이고, 십육진수 값은 표기를 십육진수로 읽은 값이다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다(1≤T≤1001 \le T \le 100). 이어지는 TT개의 줄에는 각각 두 정수 KK와 DD가 주어진다(2≤K≤152 \le K \le 15, 0≤D≤1060 \le D \le 10^6). KK는 표기의 자릿수이고, DD는 십진수 값에서 뺄 수이다.

출력

각 테스트 케이스에 대해 조건을 만족하는 표기를 모두 찾는다. 조건을 만족하는 표기는 앞자리가 0이 아닌 KK자리 숫자 나열이며, 십진수 값을 XX, 십육진수 값을 YY라 할 때 X>DX > D이고 YY가 X−DX - D로 나누어떨어지는 표기이다.

각 테스트 케이스의 답은 한 줄에 출력한다. 줄의 앞에는 찾은 표기의 개수를 쓰고, 이어서 모든 표기를 오름차순으로 공백을 사이에 두고 출력한다.

예제1

  1. 예제 1

    입력
    4
    5 6
    2 0
    2 5
    2 21
    
    예상 출력
    3 12510 24990 37950
    0
    2 16 22
    4 22 24 34 96