P2981 [USACO10FEB] Cows on Ice G
题目描述
Bessie 在一个冰封的湖面上溜冰,湖面可以表示为二维的平面,坐标范围是 $-10^9 \cdots10^9$。湖面上的 $N(1 \le N \le 20000)$ 个位置有石块(编号分别为 $1$ 到 $N$),第 $i$ 个石块在 $(X_i, Y_i)$,其它位置是滑溜溜的冰面。
由于 Bessie 滑冰技术不够好,她通过推动自己旁边的石块,依靠反作用力向某一个方向前进,在碰到一个新的石块之前,Bessie 是不会停下来的。(当然,最后会停留在某块石块的前一个格子里)由于 Bessie 无法计算复杂的角度,她只能够向东南西北四个方向前进。很显然,Bessie 不能够穿越石块,因此,Bessie 仅仅可以向三个方向滑。
滑冰不是没有风险,Bessie滑向某个方向后必须能碰到某个石块,因此她必须很小心。
考虑下面的状况:Bessie 想要到达在她东边的 $(5, 1)$(`.` 表示冰,`*` 表示石头,`B` 表示 Bessie,`G` 表示终点)。如果她直接向东滑,她会滑过头,因为她只能在撞击一块石头时停下。可以用下面的方式到达 $(5, 1)$
```cpp
(a) (b) (c) (d)
4 .....*. .....*. .....*. .....*.
3 ..*.... ^ ..*.... > ..*.... v ..*....
2 ......* ^ ..B...* > .....B* v ......*
1 .*B..G. ------> .*...G. ------> .*...G. ------> .*...B.
0 *....*. *....*. *....*. *....*.
0123456
```
在情况(a)中 Bessie 可以向北、东和南滑动,但是只有向北滑能够撞击石头。在情况(b)中 Bessie 同理只能向东滑。
Bessie 一开始在 $(B_x, B_y)$,她需要到达 $(G_x, G_y)$。
Bessie 不太介意滑冰。但是,由于她的体重问题(毕竟她是一只牛),她需要很大的力气才能够把自己推动并向某一个方向滑去。所以,Farmer John 想要知道她至少需要几次才能够到达目的地。
输入格式
第一行五个整数 $N$,$B_x$,$B_y$,$G_x$ 与 $G_y$。
接下来 $N$ 行,第 $i$ 行两个整数 $X_i$ 和 $Y_i$。
输出格式
一行一个整数,表示 Bessie 最少需要推动自己几次。
说明/提示
保证没有两个石块在同一个位置上。
保证有解。
$1 \le N \le 20000$,$-10^9 \le X_i, Y_i, B_x, B_y, G_x, G_y \le 10^9$。