이차원 평면에 개의 점이 주어진다. 점들의 좌표는 서로 다르고, 좌표도 서로 다르다.
점들이 전체적으로 왼쪽 아래에서 오른쪽 위로 올라가는 모양이면 이 모양을 오솔길이라고 부른다. 구체적으로, 모든 가능한 점들의 쌍에 대해 좌표가 더 큰 점이 좌표도 더 큰 경우를 오솔길이라고 부른다.
주어진 점들의 집합을 오솔길로 만들려고 한다. 이를 위해 할 수 있는 작업은 임의의 두 개의 점을 골라서 좌표를 교환하는 것이다. 즉, 작업 전의 두 점의 좌표가 각각 , 이었으면 작업 후에 좌표는 각각 , 가 된다.
주어진 점들을 오솔길로 만들기 위해 필요한 최소 작업의 수를 구하는 프로그램을 작성하시오.
첫 줄에 점의 개수 이 주어진다. ()
이어지는 개의 줄의 번째 줄에는 번째 점의 좌표 에 해당하는 두 정수 와 가 공백으로 구분되어 주어진다. ()
는 모두 다르고, 도 모두 다르다. 즉, 인 모든 , 에 대해서 이고 이다.
첫 줄에 주어진 점들을 오솔길로 만들기 위해 필요한 최소 작업의 수를 출력한다.
5 1 1 2 3 3 4 4 2 5 5
2
주어진 점들을 좌표 평면에 표현하면 아래와 같다. 아래 그림에서 화살표로 표시된 두 점의 좌표를 교환하면 그 아래 그림과 같이 된다.
위 그림에서 다시 화살표로 표시된 두 점의 좌표를 교환하면 아래 그림과 같이 되어 오솔길이 된다. 이 경우가 가장 작은 횟수의 작업을 하는 방법들 중 하나이다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 23점
종류 2: 25점
종류 3: 11점
종류 4: 41점
추가적인 제한 조건이 없음.