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, check=False): 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, 10**18)): ok = mid else: ng = mid cnt += ok if not check: continue if ok > 0 and comp((max_c, max_d), (A[ok - 1], A[i])): max_c, max_d = A[ok - 1], A[i] if check: return (max_c, max_d) return True if cnt < N * (N - 1) // 2 else False ok, ng = 0, 10**18 + 1 while ng - ok > 1: mid = (ok + ng) // 2 if check(mid): ok = mid else: ng = mid ans = check(ng, True) print(ans[0] // gcd(*ans), ans[1] // gcd(*ans))