아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

가장 작은 16진수 배수

시간 제한2초메모리 제한256 MB

요약
허용된 16진 숫자만으로 N의 배수 중 가장 작은 양의 정수를 구하고 없으면 없다고 보고합니다.
난이도

보통10점 중 6점

유형
BFS, 그래프, 최단 경로, 정수론
정답자
아직 제출이 없습니다

문제

정수 NN과 16진법 숫자 DD개가 주어진다. 16진법으로 나타냈을 때 주어진 숫자만 쓰면서 NN으로 나누어떨어지는 가장 작은 양의 정수 XX를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다 (1≤T≤1001 \le T \le 100).

각 테스트 케이스는 두 줄이다. 첫째 줄에는 NN과 DD가 10진법으로 공백을 사이에 두고 주어진다 (1≤N≤2000001 \le N \le 200000, 1≤D≤161 \le D \le 16). 둘째 줄에는 쓸 수 있는 16진법 숫자 d1,d2,…,dDd_1, d_2, \dots, d_D가 공백으로 구분되어 주어진다. 각 숫자는 0부터 9까지와 a부터 f까지 중 하나이고, 서로 다르며, 오름차순으로 정렬되어 있다.

출력

각 테스트 케이스마다 한 줄씩 출력한다. NN의 배수이면서 16진법 표기에 주어진 숫자만 쓰는 가장 작은 양의 정수 XX를 16진법으로 출력한다. a부터 f는 소문자로 쓰고, 앞에 0을 붙이지 않는다. 조건을 만족하는 수가 없으면 no solution을 출력한다.

답은 아주 길어질 수 있다. 64비트 정수에 담기지 않는 경우가 있으므로 문자열로 만들어야 한다.

예제2

  1. 예제 1

    입력
    4
    1 3
    a b c
    2 8
    1 3 5 7 9 b d f
    1207 3
    1 a f
    33910 4
    0 c e f
    
    예상 출력
    a
    no solution
    1aa1aa
    c0ffee
    
  2. 예제 2

    입력
    3
    16 2
    0 1
    1 1
    0
    15 16
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    
    예상 출력
    10
    no solution
    f