음식점 개업
시간 제한5초메모리 제한128 MB
아파트 A와 B까지 맨해튼 거리를 기존 모든 식당과 비교해 어느 한쪽이라도 더 가까운 교차점 개수를 셉니다.
문제
당신은 새 음식점을 개업하려고 한다. 도시는 크기가 인 격자로 나타낼 수 있다. 모든 도로는 수직 또는 수평이고, 각 방향의 도로에는 번부터 번까지 번호가 매겨져 있다. 모든 음식점은 교차로에 있으며, 교차로는 (수직 도로 번호, 수평 도로 번호) 쌍인 좌표 로 나타낸다. 두 교차로 과 사이의 거리는 이다.
도시에는 큰 아파트가 두 개 있고, 두 아파트 와 는 같은 수평 도로 위에 있다(즉 좌표가 같다). 두 아파트에는 이미 음식점이 있다.
두 아파트에 사는 사람들이 자주 만나기 때문에, 당신은 새 음식점을 두 아파트 사이의 알맞은 자리에 두려고 한다. 하지만 이미 있는 음식점과 임대료를 고려하면 정중앙이 항상 가장 좋은 것은 아니다. 그래서 다음 조건을 만족하는 "좋은 곳"을 찾으려고 한다. 여기서 는 와 사이의 거리이다.
교차로 가 "좋은 곳"이 되려면, 이미 있는 모든 음식점 에 대해 또는 를 만족해야 한다. 바꿔 말하면, 이면서 동시에 인 음식점 가 하나라도 있으면 는 "좋은 곳"이 아니다.
비교 대상 에는 두 아파트 , 에 있는 음식점도 포함된다.
예를 들어 아파트가 , 인 도시를 생각하자.
- 는 "좋은 곳"이다.
- 은 음식점 때문에 "좋은 곳"이 아니다. (이고 )
- 은 아파트 에 있는 음식점 때문에 "좋은 곳"이 아니다.
이미 있는 음식점들의 위치가 주어졌을 때, 도시의 모든 교차로 개 중 "좋은 곳"의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 각 테스트 케이스의 첫째 줄에는 도시의 크기 과 음식점의 수 이 주어진다(, ). 이어지는 개의 줄에는 각 음식점의 좌표 , 가 주어진다().
두 음식점의 좌표가 같은 경우는 없다. 아파트 는 첫 번째 음식점, 아파트 는 두 번째 음식점의 위치에 있으며, 와 는 같은 수평 도로 위에 있다.
출력
각 테스트 케이스마다 "좋은 곳"의 개수를 한 줄에 하나씩 출력한다.