瞎位移群岛
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛为了小便宜参加了 不坑你坑谁旅行社 的夏威夷群岛旅游
牛牛到了才发现这不是夏威夷群岛而是瞎位移群岛!!!
瞎位移群岛的k个岛分布在一个n*m的地图上
其中左下角为(1,1) 右上角为 (n,m)n为横坐标,m为纵坐标
牛牛降落在编号为s的岛,他要去编号为t的岛才能得救
但是牛牛的密度比水大(不会游泳)
他只能从一个岛跳到相邻的岛(上下左右相邻,即两个岛之间不能有水)
(做为一只灵活的牛,跳到另一个岛的时间可以忽略【移动时间不计】)
每一秒,瞎位移群岛有且只有一个岛发生位移,而且只位移一个单位
(如果将要位移的位置有岛了,或出地图了则此岛位移失败,位置不发生变化)
牛牛通过了一些方法得到了未来T秒瞎位移群岛的位移情况
对于每一秒有2个参数 x,y
代表第x个岛向y方向位移,若岛的位置在(a,b)
y==1 向上位移 即位移到(a,b+1)
y==2 向下位移 即位移到(a,b-1)
y==3 向左位移 即位移到(a-1,b)
y==4 向右位移 即位移到(a+1,b)
牛牛想知道在至少哪个时刻可以到达t岛
如果无法在T秒内到达t岛 输出 -1

输入描述:

第1行 n,m,k,s,t
接下来k行 x_i y_i代表第i个岛的坐标(保证两个岛不会在同一个位置)
一个数T
接下来T行 见题目描述

输出描述:

一行答案
示例1

输入

复制
4 4 3 1 3
1 1
1 3
1 4
2
2 2
2 1

输出

复制
2

备注:

对于 10% 的数据
n,m<=10
k<=10
T<=100
对于 30% 的数据
n,m<=20
k<=100
T<=5000
对于 50% 的数据
n,m<=100
k<=1000
T<=500000
对于 100% 的数据
n,m<=1e3
k<=1e3
T<=1e6