보물찾기
시간 제한10초메모리 제한256 MB
하나의 직선으로 모든 지뢰를 반대쪽에 가두고 같은 쪽에 남는 보물 수를 가장 크게 구합니다.
문제
섬에 보물 개와 지뢰 개가 묻혀 있다. 지뢰를 하나씩 해체하는 방법은 너무 위험하니, 대신 곧은 울타리를 하나 세워 지뢰가 있는 구역과 보물찾기를 할 구역을 나누기로 했다.
울타리는 두께가 없고 양쪽으로 무한히 뻗은 직선이며, 섬은 볼록하다고 본다. 울타리를 세우면 섬이 두 구역으로 나뉘고, 지뢰가 하나도 없는 구역의 보물만 안전하게 찾을 수 있다. 울타리 위에 보물이나 지뢰가 놓여서는 안 된다.
울타리를 하나 세울 때 지뢰가 없는 구역에 둘 수 있는 보물의 최대 개수를 구하시오.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫 줄에는 보물의 개수 과 지뢰의 개수 이 주어진다. 다음 두 줄에는 각각 정수가 개씩 주어진다. 첫 줄의 번째 정수는 번째 보물의 좌표이고, 둘째 줄의 번째 정수는 그 보물의 좌표이다. 이어지는 두 줄에는 각각 정수가 개씩 주어지며, 같은 방식으로 지뢰의 좌표와 좌표를 나타낸다.
- 모든 좌표는 인 정수이다.
- 같은 위치에 두 물체가 놓이는 경우는 없다.
- 울타리 위에는 보물도 지뢰도 놓이지 않는다.
출력
각 테스트 케이스마다 울타리 하나로 지뢰와 분리할 수 있는 보물의 최대 개수를 한 줄에 출력한다. 보물을 하나도 분리할 수 없으면 0을 출력한다.