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$。