from math import gcd N = int(input()) A = sorted(list(map(int, input().split()))) def comp(X, Y): x_c, x_d = X y_c, y_d = Y return x_c * y_d <= y_c * x_d def check(val): max_c, max_d = 0, 1 cnt = 0 for i in range(N): ok, ng = 0, N while ng - ok > 1: mid = (ok + ng) // 2 if comp((A[mid - 1], A[i]), (val, 2 * 10**18)): ok = mid else: ng = mid cnt += ok if ok > 0 and comp((max_c, max_d), (A[ok - 1], A[i])): max_c, max_d = A[ok - 1], A[i] return (True, (max_c, max_d)) if cnt < N * (N - 1) // 2 else (False, (max_c, max_d)) ok, ng = 0, 2 * 10**18 + 1 while ng - ok > 1: mid = (ok + ng) // 2 if check(mid)[0]: ok = mid else: ng = mid ans = check(ng)[1] print(ans[0] // gcd(*ans), ans[1] // gcd(*ans))