2차원 평면에 개의 점이 주어진다. 은 짝수이다. 점들은 번부터 번까지 번호가 매겨져 있다. 번 점의 좌표는 이다. 점들을 두 개씩 짝을 지어 개의 쌍을 만들려고 한다. 두 점 과 가 짝이 되었을 때 이 쌍에 대한 점수는 이다.
점수 총합이 가능한 최대가 되도록 점을 짝짓는 프로그램을 작성하라.
첫 줄에 점의 수를 나타내는 정수 이 주어진다. ( 은 짝수)
이어지는 개의 줄의 번째 줄에는 번 점의 좌표를 나타내는 두 정수 , 가 공백으로 구분되어 주어진다. ()
첫 줄에 점수 총합의 최댓값을 출력한다.
그다음 개의 줄에 걸쳐 최대 점수 총합을 만드는 짝짓기 방법을 출력한다. 각 줄은 짝을 짓는 두 점의 번호를 공백으로 구분하여 출력한다.
만약 가능한 답이 여러 가지라면, 그중 아무거나 하나 출력한다.
4 1 2 2 1 2 2 1 1
4 4 3 1 2
번 점과 번 점으로 쌍을 만들어 점을 얻고, 번 점과 번 점으로 쌍을 만들어 점을 얻는다. 점수의 총합은 점이다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 19점
종류 2: 18점
모든 점의 좌표가 같음.
종류 3: 63점
추가적인 제한 조건이 없음.