- 용액들을 정렬 한 뒤 투 포인터 알고리즘을 통해 0에 가까운 용액들이 나올 때 마다 a,b에 값을 갱신 한 뒤 마지막에 출력을 해주었다.
target = 21e8
N = int(input())
arr = list(sorted(map(int,input().split())))
start, end = 0, N-1
while end > start: # start가 end보다 작을 떄 까지만 진행
tmp = arr[start] + arr[end] # tmp에 두 용액의 합을 저장
if abs(target) > abs(tmp): # 용액의 합이 0에 가깝다면
target = abs(tmp) # target과 a,b를 갱신 시켜줌
a,b = arr[start],arr[end]
if abs(arr[start]+arr[end-1]) > abs(tmp): # end 인덱스를 줄였을 때 두 용액의 계산 값이 tmp값 보다 크다면 start 인덱스를 올려줌
start += 1
else:
end -= 1
else:
if abs(arr[start]+arr[end-1]) > abs(tmp):
start += 1
else:
end -= 1
print(a,b)