当刷完 上的所有题目后,理所当然的,就开始他们的颓废生涯了。
他们玩的是 服务器上的 游戏,又称僵尸末日。游戏的目标是打僵尸,撑过最多的回合。由于 与这个游戏心有灵犀,导致他从头至尾几乎没死过一次,而其他两个人就不一定了。一开始,(下简称 )和 (下简称 )中的一个被击倒在了某个地方,而此时 (下简称 )在另一个地方玩耍。这时, 要以最快的速度去被击倒的那个人身边去复活他。不幸的是,当 复活完一个人离开时,另一个人又会被击倒……
整个地图是一个太阳图结构。所谓太阳图,就是整张图包括一个简单环,其他各点都与环上的某个点连接有且仅有一条边。整个地图共有 个房间,每个房间都有它自己的名字,这些房间之间有走廊可以通行,显然,走廊的数量 。
现在,给出 个询问,每个询问包括两个字符串 和 ,分别表示 所在的位置和 或 所在的位置。 在一个单位时间内可以从一个房间走到另一个房间,现在请求出 至少需要多少时间才能到达 或 所在的房间。
第一行一个数 ,表示房间数。
第二行一个数 ,表示环上的点的个数。
第 行,每行一个字符串 ,表示环上这个房间的名字。
第行,每行一个字符串 和一个整数 ,表示不在环上的房间的名字和它连接的房间的序号。
接下来一个数 ,表示询问数。
第 行,每行包括两个字符串 和 ,用空格隔开,分别表示 所在的位置和 或 所在的位置。
我们假定房间序号按读入的顺序排列,且环上的第 个点连接第 的点,特别的,第 个点连接第 个点。
共 行,每行一个数,表示你对于每个问题的答案。
xxxxxxxxxx
8
6
Alley
Hotel
Apartment
PowerStation
Gallery
Office
Garden 2
Roof 4
3
Apartment Apartment
Garden Roof
Alley Gallery
xxxxxxxxxx
0
4
2
xxxxxxxxxx
4
1
ParkEntrance
BumperCars 1
FerrisWheel 1
RollerCoaster 1
2
RollerCoaster BumperCars
ParkEntrance RollerCoaster
xxxxxxxxxx
2
1
xxxxxxxxxx
8
4
Mansion
GreatHall
Balcony
Library
Courtyard 1
Crypt 1
Dungeon 4
Graveyard 3
5
Crypt Crypt
Mansion Courtyard
Graveyard Library
Dungeon Graveyard
Courtyard Graveyard
xxxxxxxxxx
0
1
2
3
4
你可以将问题归约为两点间的最短路。
样例 的存在是为了告诉你环不一定有多个点组成。
对于的数据,;
对于的数据,;
对于的数据,;
对于的数据,。
对于的数据,。
对于全部的数据,如果标程运行时间超过 ,则给出 时限。