#Lutece2924. 导航系统
导航系统
Migrated from Lutece 2924 导航系统
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
Tag:线段树/树状数组+分类讨论
T国是一个由个岛屿构成的岛国,这个岛屿编号从到。为了使得岛屿之间互相连通,国王下令在岛屿间修建了座桥:对于,第座桥连接号岛屿和号岛屿,而第座桥则连接了号岛屿和号岛屿。简单来说,这个岛屿构成了一个环。通过其中第座桥需要花费的时间,桥为双向通行。为与后文区别,我们称呼这些桥为“老桥”。
可是由于海啸频繁,一些桥将暂时陷入瘫痪,此时这座桥将无法通过。显然当座及以上的桥陷入瘫痪时,这座岛屿将不再相互连通。对于如此不便利的交通条件,居民们常常怨声载道。
面对这日益增长的压力,国王决定另外修建个人工岛屿和座桥来缓解这一状况,这个人工岛屿编号从到。在这座新修的桥中,对于,第座桥连接了号人工岛屿和号人工岛屿;而第座桥则连接了号岛屿和号人工岛屿,第座桥则连接了号人工岛屿和S号岛屿(保证S号岛屿不是人工岛屿)。通过新修建的这座桥中第i座桥的需要花费时间,桥为双向通行。为与前文区别,我们称呼这些桥为"新桥"。
同时,为了帮助居民更好地选择从某一个岛屿到另一个岛屿的最佳路线,国王委托你实现一个导航系统,告诉居民从一个岛屿到另一个岛屿所需的最短时间(仅考虑经过所有桥花费的时间)。
由于海啸频繁,有时会出现某一座桥陷入瘫痪的情况。状况缓解时,已经瘫痪的桥也可能在某一时刻恢复正常使用。你实现的系统当然也需要考虑这些情况。
Input
第一行是三个整数。
第二行是个整数,第个整数表示。
第三行是个整数,第个整数表示。
第四行只有一个整数,表示接下来将会发生个事件。
接下来行,每一行描述一个事件,每一个事件由若干个整数描述。
对于每一个事件,第一个整数是。
- 若,则接下来两个整数和描述了一次询问,表示有居民询问了在当前情况下从到的最短时间。
- 若,则接下来一个整数表示第座老桥状态发生了变化。如果这座桥原本处于瘫痪状态,则它在这一时刻恢复正常;如果这座桥原本处于正常状态,则它在这一时刻因为海啸陷入了瘫痪状态。
- 若,则接下来一个整数表示第座新桥状态发生了变化。如果这座桥原本处于瘫痪状态,则它在这一时刻恢复正常;如果这座桥原本处于正常状态,则它在这一时刻因为海啸陷入了瘫痪状态。
Output
对于事件中的每一个询问,输出一行。
如果在当前状况下可以到达,则本行输出一个整数表示从到的最短时间。
如果在当前状态下不能到达,则本行输出"Pigs might fly!"(输出不包括双引号)。
Samples
6 4 5
1 1 4 5 1 4
1 1 4 5 1 4
8
1 1 4
2 1
2 2
1 1 4
2 4
1 1 4
3 1
1 1 4
6
10
16
Pigs might fly!
Constraints
,
when
when
Resources
2023 UESTC ICPC Training for Data Structures