신호 2

x좌표가 서로 다른 점들을 골라 x순으로 정렬했을 때 이웃한 점 사이 유클리드 거리의 합이 최대가 되도록 하는 부분집합을 찾는다.

보통7동적 계획법기하정렬분할 정복아직 제출이 없습니다시간 제한1.5초메모리 제한256 MB

문제

좌표평면에 신호가 NN개 있다. ii번째 신호의 위치는 (xi,yi)(x_i, y_i)이고, 같은 자리에 놓인 신호는 없다.

신호를 몇 개 골라 통신 시스템을 만든다. 고른 신호를 xx좌표가 커지는 순서로 늘어놓고 이웃한 두 신호를 차례로 잇는다. 그래서 고른 신호의 xx좌표는 모두 서로 달라야 한다. 시스템의 길이는 이어 만든 선분의 유클리드 거리를 모두 더한 값이다. 신호를 하나만 고르면 길이는 00이다.

시스템이 길수록 전파가 멀리 나간다. 가장 긴 통신 시스템의 길이를 구하라.

입력

첫째 줄에 신호의 개수 NN이 주어진다. (1N1061 \le N \le 10^6)

다음 NN개 줄에 신호의 좌표 xix_iyiy_i가 공백을 사이에 두고 주어진다. (108xi,yi108-10^8 \le x_i, y_i \le 10^8, xix_iyiy_i는 정수)

출력

가장 긴 통신 시스템의 길이를 소수점 아래 일곱째 자리까지 반올림해 한 줄에 출력한다. 자리가 모자라면 00으로 채워 소수점 아래를 항상 일곱 자리로 맞춘다.