Kapr2kar's r0utine
시간 제한1초메모리 제한512 MB
0이 없는 N자리 수 중에서, 자리 숫자를 재배열해 만든 두 번째로 큰 수와 두 번째로 작은 수의 차가 자기 자신이 되는 수를 하나 찾는다.
문제
인도 수학자 Kaprekar는 Kaprekar's routine이라는 반복 알고리즘을 고안했다. 이 알고리즘의 한 단계는 자리 수에 대해서 각 자리의 숫자를 재배열하여 만들 수 있는 가장 큰 수와 가장 작은 수의 차이를 계산하는 것이다. 단, 가장 작은 수를 구할 때 맨 앞에 이 오는 것을 허용한다.
이때, 어떤 수는 한 단계를 거쳐도 처음 수와 같은 결괏값을 얻게 된다. 한 예시로 가 있다. 를 재배열하여 만들 수 있는 가장 큰 수는 이고 가장 작은 수는 이다. 과 의 차이는 가 되어, 처음 수와 같아진다.
Kaprekar's routine을 알게 된 파이시스는 위 단계가 너무 단조롭다고 생각했다. 그래서 자신이 좋아하는 숫자 를 추가하고 싫어하는 숫자 을 제거하여 Kapr2kar's r0utine이라는 새 반복 알고리즘을 만들었다. Kapr2kar's r0utine의 한 단계는 숫자 이 포함되지 않은 자리 수에 대해서 각 자리의 숫자를 재배열하여 만들 수 있는 번째로 큰 수와 번째로 작은 수의 차이를 계산하는 것이다. 당연히, 이나 와 같이 모든 자리 숫자가 같은 수는 번째로 큰 수나 번째로 작은 수가 존재하지 않으므로 고려하지 않는다.
파이시스는 Kapr2kar's r0utine에서도 한 단계를 거쳤을 때 처음과 같은 결괏값을 얻는 수가 있는지 궁금해졌다. 그를 도와주는 프로그램을 작성하자.
입력
첫째 줄에 구하려는 수가 몇 자리 수인지를 나타내는 양의 정수 이 주어진다. ()
출력
첫째 줄에 Kapr2kar's r0utine의 한 단계를 거쳤을 때 처음과 같은 결괏값을 얻는 자리 수를 아무거나 하나 출력한다.
단, 조건을 만족하는 수가 존재하지 않는다면 을 출력한다.