서로 다른 자연수 n개 a1, a2, ..., an이 주어진다. 이때, a1, ... an에서 2개를 선택해서 붙여서 새로운 수를 만들 수 있다. 이때, 세 번째로 작은 수를 구하는 프로그램을 작성하시오.
예를 들어, 3과 4를 합치면 34나 43이 된다. 또, a1 = 1, a4 = 11을 합쳐서 111을 만든 경우에, a1a4와 a4a1은 다른 수이다.
첫째 줄에 수의 개수 n(3 ≤ n ≤ 108)이 주어진다. 다음 줄부터 한 줄에 하나씩 ai가 주어진다. (1 ≤ ai ≤ 10000)
세 번째로 작은 수를 출력한다.
from itertools import combinations
import sys
n = int(input())
numbers = []
numbers = [int(sys.stdin.readline().rstrip()) for _ in range(n)]
numbers.sort(key=lambda x: (len(str(x)), x))
if len(numbers) > 3:
numbers = numbers[:4]
numbers = list(combinations(numbers, 2))
check = []
for num1, num2 in numbers:
check.append(int(str(num1)+str(num2)))
check.append(int(str(num2)+str(num1)))
check.sort()
print(check[2])