printРабочее место участника

printЗадачи

789. Make it Manhattan

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Chaos City has grown out of control. Building have been built everywhere and the city layout is a complete mess. The mayor decided that this must come to an end, and wants to create a nice, structed city.
After some research, he found the ideal way to make this happen. Inspired by the New York district of Manhanttan, he wants all buidlings organized in a rectangular grid, separated by avenuesrunning from North to South and streets running from West to East. These streets and avenues should all be separated by the same distance `D`.
In the current situation, the buidlings are already organized in a rectangular grid. In fact each buidling fills exactly one square in this grid. However, with all the buildings randomly scattered across the city, it may be impossible to build the roads without demolishing a couple of buildings. To keep most citizens happy, the mayor wants to demolish as few buidlings as possible. Given the current locations of the buidlings, what's this minimum number?
4152.png
The above picture illustrates the problem. The shaded squares are the initial locations of the buidlings. If the roads should be separated by a distance of three, the thick lines indicate the optimal placement of the roads and one building has to be demolished.
Input
The first line of the input contains a single number: the number of test cases to follow. Each test case has the following format:
One line with two integers `D` and `N`, separated by a single space, satisfying `1\ ≤\ D\ ≤\ 1000` and `0\ ≤\ N\ ≤\ 100000`: the distance between two roads, and the number of buidling in the city respectively.
`N` lines with two integers `x_i` and `y_i`, separated by a single space, satisfying `-10^9\ ≤\ x_i,\ y_i\ ≤\ 10^9`: the positions of the buildings.
Output
For every testcase in the input, the output should contains a single line with the minimum number of buidling that has to be demolished.

Sample Input (see figure)

1
3 10
1 0
2 0
3 0
4 0
1 2
0 3
1 5
3 5
4 2
-2 2

Sample Output

1
Source: Benelux Algorithm Programming Contest 2006
loading