등비수열의 공비 복원

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

요약
순서가 섞이고 일부가 삭제된 정수 등비수열이 주어질 때, 절댓값이 가장 큰 공비를 양수 우선으로 찾고 존재하지 않으면 0을 출력한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 정렬, 해시맵
정답자
아직 제출이 없습니다

문제

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

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

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

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

입력

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

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

출력

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

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

예제4

  1. 예제 1

    입력
    3
    1
    3
    27
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2
    2
    6
    
    예상 출력
    3
    
  3. 예제 3

    입력
    3
    4
    6
    9
    
    예상 출력
    3/2
    
  4. 예제 4

    입력
    4
    1
    2
    4
    8
    
    예상 출력
    2