페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#10408

쌍 만들기 5s 1024MB

문제

양의 정수 두 개로 이루어진 쌍을 만들고 싶다. 이를 위해 사용할 10진수 숫자들의 목록이 주어진다. 당신은 목록에 있는 모든 숫자를 정확히 한 번씩 사용해야 하지만, 어떤 숫자들을 첫 번째 정수에 쓰고 어떤 숫자들을 두 번째 정수에 쓸지는 당신이 정할 수 있다. 또한 각 정수 안에서 숫자들의 순서도 당신이 정할 수 있다. 다만, 어느 정수든 가장 높은 자리(왼쪽 끝)에 0을 둘 수는 없다. 또한 한 정수를 0 하나만으로 선택할 수도 없는데, 그 경우 양의 정수가 아니기 때문이다.

예를 들어 숫자 목록이 [1, 0, 2, 0, 4, 3]으로 주어질 수 있다. 당신이 만들 수 있는 유효한 쌍의 예로는 (200, 143)(3, 12400)이 있다. 반면 다음 쌍들은 유효하지 않다:

  • (0102, 34): 앞자리가 0이다.
  • (0, 12340): 양의 정수가 아닌 수가 포함되어 있다.
  • (10, 243), (12300, 47): 각 쌍에서 사용된 숫자들의 멀티셋이 주어진 숫자 목록과 정확히 일치하지 않는다.

사용할 숫자 목록이 주어질 때, 규칙을 만족하도록 만든 두 정수의 차이의 절댓값을 최소로 할 때의 그 최소값을 구하라.


입력

입력의 첫 줄에는 테스트 케이스 수 \mathbf{T}가 주어진다. 그 다음 \mathbf{T}줄이 이어진다. 각 줄은 테스트 케이스 하나를 설명하며, 숫자들로 이루어진 문자열 \mathbf{D} 하나가 주어진다. \mathbf{D}의 각 문자는 반드시 사용해야 하는 숫자 하나를 나타낸다.


출력

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력하라. 여기서 x는 (1부터 시작하는) 테스트 케이스 번호이고, y는 위 규칙에 따라 \mathbf{D}의 숫자들로 만든 두 정수 사이의 가능한 차이의 절댓값 중 최소값이다.


예제

4
1234
0011
07080
0899
Case #1: 7
Case #2: 0
Case #3: 620
Case #4: 1
샘플 케이스 #1의 최적 정수 쌍은 31과 24, 샘플 케이스 #2는 10과 10, 샘플 케이스 #3은 700과 80, 샘플 케이스 #4는 89와 90이다.

출처

GCJ 2021r3 A

로그인해야 코드를 작성할 수 있어요.