문제
1이상 1,000이하의 양의 정수로 이뤄진 집합 A가 주어지고, 1이상 1,000이하의 정수 N이 주어졌을 때 A에 포함되지 않는 3개의 양의 정수 X, Y, Z 를 선택하여 이들의 곱이 N에 최대한 가깝게 하는 프로그램을 작성하라. 이를 다시 말하면 | N - X * Y * Z | (이는 N에서 X * Y * Z 값을 뺀 값에 대한 절대값을 뜻함) 를 최소화 해야한다는 것이다.
입력
입력의 첫 줄에는 N과 집합 A의 원소의 개수 M이 주어진다. 그 다음 줄에는 집합 A를 이루는 M개의 정수가 입력된다. 동일한 숫자가 여럿 입력되지 않으며, 입력되는 숫자는 1이상 1,000이하의 정수다. 집합을 이루는 A의 원소는 0개 이상 50개 이하다.
출력
입력에 대해 조건을 만족하는 경우 중에서 | N - X * Y * Z | 를 최소화 시킬 때의 X, Y, Z를 출력한다. 가능한 경우가 여럿이 있으면 이중에서 X가 가장 작은 경우, X가 같은 경우가 여럿이 있으면, Y가 가장 작은경우, X와 Y가 같을 경우에는 Z가 작은 경우를 출력한다.
예제
4 2
2 4
1 1 3
힌트