용액 합성하기
시간 제한1초메모리 제한512 MB
정렬된 정수 N개가 주어질 때, 서로 다른 두 수의 합이 0에 가장 가까운 값을 구하고, 거리가 같으면 더 작은 합을 출력한다.
문제
어느 화학 연구소는 여러 종류의 용액을 보유한다. 용액마다 -100,000,000부터 100,000,000까지의 특성값이 하나씩 붙어 있다. 같은 양의 두 용액을 섞으면 새 용액의 특성값은 두 특성값의 합이 된다.
용액은 각각 10ml 시험관에 10ml씩 담겨 있고, 비어 있는 20ml 시험관은 하나뿐이다. 용액을 계량할 수 없어서 두 용액을 10ml씩 부어 20ml로 만드는 혼합만 할 수 있고, 그마저도 단 한 번뿐이다. 그래서 특성값을 미리 보고 어떤 두 용액을 섞을지 정해야 한다.
예를 들어 특성값이 -101, -3, -1, 5, 93인 용액 다섯 개가 있다고 하자. 특성값이 -101인 용액과 93인 용액을 섞으면 -8이 되고, 5인 용액과 93인 용액을 섞으면 98이 된다. 가능한 조합을 모두 따져 보면 특성값 2가 0에 가장 가깝다.
오름차순으로 주어진 특성값 중 서로 다른 두 용액을 골라 섞어서 만들 수 있는, 0에 가장 가까운 특성값 를 구한다.
입력
N
A1 A2 … AN
첫째 줄에 용액의 개수 이 주어진다. 둘째 줄에 특성값 개가 오름차순으로 공백 하나씩을 사이에 두고 주어진다.
출력
B
0에 가장 가까운 특성값 를 한 줄에 출력한다. 0까지의 거리가 같은 값이 두 개라면 그중 작은 값, 즉 음수인 쪽을 출력한다.
제한
- 2 ≤ N ≤ 100,000
- -100,000,000 ≤ Ai ≤ 100,000,000
- (2 ≤ i ≤ N)