울타리

나무를 베면 각각 일정 길이의 울타리 재료를 얻는다. 남은 나무를 모두 감싸는 축에 나란한 직사각형의 둘레를 베어낸 재료로 충당할 때, 베어야 하는 나무 수의 최솟값을 구한다.

어려움8완전 탐색기하수학구현아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

은진이의 집 앞에는 많은 나무가 심어진 아름다운 정원이 있다.

새 법에 따라 모든 정원은 울타리로 둘러싸여야 한다. 울타리는 변이 좌표축에 평행한 직사각형이어야 하며, 남아 있는 모든 나무는 울타리 안에 있거나 경계에 닿아 있어야 한다.

은진이는 울타리 재료를 살 돈이 없어 정원에 있는 나무 일부를 베어 울타리를 만들려고 한다. 각 나무의 위치 (x, y)와 그 나무를 베었을 때 얻을 수 있는 울타리 길이가 주어진다.

나무를 아끼는 은진이는 가능한 한 적은 수의 나무만 베고 싶다. 새 법을 지키기 위해 베어야 하는 나무 개수의 최솟값을 구하라.

가로 또는 세로 길이가 0인 경우도 직사각형으로 본다. 두 길이가 모두 0이어도 직사각형이다.

입력

첫째 줄에 자연수 N이 주어진다. N2 이상 40 이하이다.

다음 N개의 줄에는 각 나무의 x좌표, y좌표, 그 나무를 베었을 때 만들 수 있는 울타리 길이가 순서대로 주어진다.

입력으로 주어지는 모든 값은 1,000,000 이하의 자연수이다. 어떤 두 나무도 x좌표가 같지 않고, 어떤 두 나무도 y좌표가 같지 않다.

출력

첫째 줄에 새 법을 지키기 위해 베어야 하는 나무 개수의 최솟값을 출력한다.