bzoj#P3362. [USACO2004 Feb] Navigation Nightmare 导航噩梦

[USACO2004 Feb] Navigation Nightmare 导航噩梦

题目描述

农夫约翰有 nn 个农场,标号 11nn,有 mm条的不同的垂直或水平的道路连结着农场。这些农场的分布就像下面的地图一样:

图中农场用 F1F7F_1 \sim F_7 表示,每个农场最多能在东西南北四个方向连结 44 个不同的农场。此外,农场只处在道路的两端。道路不会交叉且每对农场间有且仅有一条路径。

邻居鲍伯要约翰来导航,但约翰丢了农场的地图,他只得从电脑的备份中修复了。每一条道路的信息如下:

  • 从农场 2323 往南经距离 1010 到达农场 1717
  • 从农场 11 往东经距离 77 到达农场 1717

当约翰重新获得这些数据时,他有时被的鲍伯的问题打断:「农场 11 到农场 2323 的曼哈顿距离是多少?」 所谓在 (x1y1)(x_1,y_1)(x2,y2)(x_2, y_2) 之间的「曼哈顿距离」,就是 x1x2+y1y2|x_1 - x_2|+|y_1 - y_2|。如果已经有足够的信息,约翰就会回答这样的问题(在上例中答案是 1717),否则他会诚恳地抱歉并回答 1-1

输入格式

11 行:两个分开的整数 nnmm

2m+12 \sim m+1 行:每行包括 44 个分开的内容,F1,F2,S,DF_1, F_2, S, D 分别描述两个农场的编号,道路的长度, F1F_1F2F_2 的方向(N,E,S,WN, E, S, W)。

m+2m+2 行:一个整数 kk 表示问题个数。

m+3m+3m+k+2m+k+2 行:每行表示一个问题,由 33 部分组成:F1,F2,jF_1, F_2, j。其中 F1F_1F2F_2 表示两个被问及的农场。而 JJ 表示问题提出的时刻。当 JJ11 时表示当前得知信息 11 但未得知信息 22

输出格式

11KK 行:每行一个整数,表示两个农场间的曼哈顿距离,未知则输出 1-1

7 6
1 6 13 E
6 3 9 E
3 5 7 S
4 1 3 N
2 4 20 W
4 7 2 S
3
1 6 1
1 4 3
2 6 6
13
-1
10

提示

在时刻 11,约翰知道 1166 的距离为 1313; 在时刻 331144 的距离仍然不知道; 在时刻 66,位置 66 向北 33 个距离,向西 77 个距离于位置 22 ,所以距离为 1010

数据范围与约定

对于 100%100\% 的数据,$2 \leq n,m \leq 40000, 1 \leq K \leq 10000, 1 \leq J \leq M$ ,道路的长度不超过一千。