#arc048d. [arc048_d]たこ焼き屋とQ人の高橋君
[arc048_d]たこ焼き屋とQ人の高橋君
问题描述
AtCoder市共有 个编号从 到 的城镇,它们通过 条双向通行的距离为 的道路相连。从任意一个城镇都可以通过若干条路径到达其他城镇。
AtCoder市有 个高桥先生,第 个高桥先生想要从城镇 去往城镇 。
AtCoder市的某些城镇有炸鱼球摊。所有的高桥先生以每秒 的速度行走距离为 的路程,但在吃过炸鱼球之后,行走速度会变为每秒 的速度。此外,所有的高桥先生都很能吃,不会吃多次炸鱼球。当然,他们也可以不去炸鱼球摊而直接到达城镇 。
给定AtCoder市的城镇连接关系,请对于所有的 个高桥先生,求出从城镇 到城镇 的最短时间。由于所有的高桥先生都是炸鱼球专业户,所以忽略吃炸鱼球所花费的时间。
输入
输入以以下格式从标准输入给出。
. . . . . .
- 第 行包含两个整数 和 ,以一个空格分隔。
- 接下来的 行,每行包含两个整数 ,表示城镇 和城镇 之间有一条道路连接。
- 接下来的一行,包含长度为 的只包含 和 的字符串。当第 个字符为 时,表示城镇 没有炸鱼球摊,为 时,表示城镇 有炸鱼球摊。
- 接下来的 行中,每行包含两个整数 ,表示第 个高桥先生的起始点和目的地。
输出
输出由 行组成。
第 行输出第 个高桥先生在最优行动下所需的最短时间。
请注意最后输出时要包含一个换行符。
示例1
7 4
1 2
2 3
2 4
4 5
5 6
6 7
0010000
1 5
1 7
6 1
3 3
输出示例1
6
9
8
0
在第一个查询中,按照顺序游览城镇 是最优的。在第二个查询中,按照顺序游览城镇 并在途中的城镇 吃炸鱼球是最优的。
示例2
5 2
3 2
2 4
1 4
2 5
00000
1 5
2 3
输出示例2
6
2
示例3
12 10
1 2
2 3
2 4
10 12
1 5
3 11
5 6
9 10
5 7
3 9
8 7
000100100010
1 2
1 4
8 3
6 12
12 8
8 12
6 8
8 6
1 12
5 12
输出示例3
2
4
6
11
14
9
5
4
9
9