짝 짓기

각 소의 우유 생산량이 주어질 때, M마리를 짝지어 각 짝의 합 A+B 중 최댓값을 최소로 만드는 문제다. 입력은 생산량별 소의 수로 압축되어 주어진다.

보통6그리디투 포인터정렬수학면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

농부 존의 소는 곁에 다른 소가 있어 마음이 든든할 때 젖을 더 쉽게 짠다. 그래서 존은 MM마리의 소(M1000000000M \le 1\,000\,000\,000, MM은 짝수)를 M/2M/2개의 쌍으로 나누려 한다. 각 쌍은 헛간의 서로 다른 칸으로 가서 젖을 짜고, M/2M/2개 칸의 착유는 동시에 진행된다.

소마다 우유 생산량이 다르다. 생산량이 AA인 소와 BB인 소를 한 쌍으로 묶으면 두 마리의 젖을 모두 짜는 데 A+BA+B만큼의 시간이 걸린다.

존이 소를 가장 잘 짝지었을 때, 전체 착유가 끝나기까지 걸리는 시간의 최솟값을 구하시오.

입력

첫째 줄에 NN(1N1000001 \le N \le 100\,000)이 주어진다. 다음 NN개의 줄에는 각각 두 정수 xxyy가 주어지며, 우유 생산량이 yy(1y10000000001 \le y \le 1\,000\,000\,000)인 소가 xx마리 있다는 뜻이다. xx의 합이 전체 소의 수 MM이다.

출력

소를 최적으로 짝지었을 때 모든 소의 젖을 짜는 데 걸리는 최소 시간을 출력한다.

힌트

예제에서 생산량이 8인 소와 2인 소를 짝짓고, 5인 소 두 마리를 짝지으면 두 칸 모두 착유에 10만큼의 시간이 걸린다. 착유는 동시에 진행되므로 전체 과정은 10만큼의 시간 뒤에 끝난다. 다른 방법으로 짝지으면 어느 한 칸에서 10보다 오래 걸리므로 최적이 아니다.