N = int(input())
liquid = list(map(int, input().split()))
start = 0
end = (N-1)
ans = abs(liquid[start]+liquid[end])
while start < end:
tmp = liquid[start] + liquid[end]
if abs(tmp) <= ans:
left_index = start
right_index = end
ans = abs(tmp)
if tmp <= 0:
start += 1
else:
end -= 1
print(liquid[left_index], liquid[right_index])
투 포인터를 알게 된 문제이다.
두 용액의 합이 양수일 경우 오른쪽 index를 왼쪽으로 한 칸 내린다.
반면, 음수일 경우 왼쪽 index를 오른쪽으로 한 칸 올린다.
이 과정을 반복하면서 두 용액 합의 절대값이 기존 최소 절대값보다 작다면, 해당하는 두 용액의 인덱스를 따로 저장한 뒤 출력한다.