U313893 彩虹桥
题目描述
洛基又逃走了!索尔被迫又走上了追捕弟弟的道路。
这次洛基逃到了 M78-58 星,这里地形险恶,共有 $N$ 个城市编号 $1 \sim N$,城市之间有 $M$ 条路,没有路的地方连索尔也走不了!
索尔在 $S$ 城落地,之后会发生 $2$ 类事件:
第一类是洛基对尚未被施咒的城市 $x$ 施咒,使得索尔在此以后再也不能经过或进入城市 $x$(自己也很蠢地被关在外面);
第二类是索尔接到神盾局消息洛基在 $x$ 城出现,索尔需要从当前城市赶到 $x$ 城,在下一次二类事件发生前他会呆在 $x$ 城(保证索尔当前在的城市和要去的城市均未被施咒)。
索尔想知道,他每次要赶到 $x$ 城最少要走多长的路。如果没有路,他会用彩虹桥将自己穿送到 $x$ 城,但是由于彩虹桥每次耗费的黑暗能量太多,如非必要他不会使用。
现在索尔想知道,每次出现第二类事件他最少要走多少路,如果没办法走到他就用彩虹桥,输出`-1`;否则输出最短路程。
输入格式
第一行 $5$ 个整数 $N,M,S,D,B$,$D$ 表示一类事件的总数,$B$ 表示二类事件的总数。
接下来 $M$ 行,每行 $3$ 个整数 $Y,Z,L$,表示 $Y$ 和 $Z$ 之间有一条长度为$L$的路。
接下来 $D+B$ 行,每行 $1$ 个小写字母和 $1$ 个整数 $x$,表示一个事件,如果字母是`d`,表示洛基对城市 $x$ 施咒;如果字母是`b`,表示索尔要赶到城市 $x$。
输出格式
输出 $B$ 行,对于每个二类事件输出对应的答案。
说明/提示
对于 $30\%$ 的数据,有 $2 \le N \le 50$。
对于另外 $30\%$ 的数据,有 $0 \le B \le 100$。
对于 $100\%$ 的数据,有 $1 \le N \le 300, 1 \le M \le 10^5, 0 \le D < N, 1 \le L \le 10^6, 1 \le B \le 5*10^5$。