등비수열의 공비 복원

시간 제한1초메모리 제한128 MB

문제

연속한 두 항의 비가 일정한 정수 수열을 등비수열이라고 한다. 예를 들어 $(3, 6, 12, 24)$는 등비수열이며, 각 항은 바로 앞 항의 두 배이다. 이때 그 일정한 비를 공비라고 한다.

어떤 등비수열의 항들을 임의의 순서로 섞은 뒤 일부 항을 제거하였다. 이렇게 변형된 결과가 주어질 때, 원래 등비수열의 공비를 복원하여라.

가능한 공비가 여러 개라면 절댓값이 가장 큰 것을 출력한다. 절댓값이 같은 것이 여럿이면 양수인 것을 출력한다. 주어진 수들을 모두 포함하는 등비수열이 존재하지 않으면 $0$을 출력한다.

정수로 이루어진 등비수열의 공비는 항상 유리수이므로, 공비는 정수뿐만 아니라 $3/2$처럼 분수일 수도 있다. 여기서 '가능한 공비'란, 주어진 모든 수를 (순서에 상관없이) 항으로 포함하는 정수 등비수열이 존재하는 비 $r$를 뜻한다.

입력

첫째 줄에 변형된 수열에 들어 있는 정수의 개수 $N$이 주어진다 ($2 \le N \le 100,000$).

다음 $N$개의 줄에 변형된 수열의 정수가 한 줄에 하나씩 주어진다. 각 정수의 절댓값은 $10^{18}$ 이하이며, 값이 $0$인 원소는 없다.

출력

원래 등비수열의 공비를 기약분수로 정확히 출력한다.

  • 공비를 기약분수 $p/q$로 나타내어 p/q 형식으로 출력한다.
  • 분모 $q$가 $1$이면 분자 $p$만, 즉 정수 형태로 출력한다.
  • 공비가 음수이면 분자 앞에 -를 붙인다.
  • 주어진 수들을 모두 포함하는 등비수열이 존재하지 않으면 0을 출력한다.