#ABC307F. 病毒扩散 2

病毒扩散 2

病毒扩散 2

题目描述

NN 个房间,编号为 1,2,,N1,2,\ldots,N,每个房间里住着一个人;还有 MM 条连接两个不同房间的走廊。第 ii 条走廊连接房间 UiU_i 和房间 ViV_i,长度为 WiW_i

某一天(记为第 00 天),住在房间 A1,A2,,AKA_1, A_2, \ldots, A_KKK 个人(新)感染了某种病毒。此外,在接下来的 DD 天中的第 ii(1iD)(1\leq i\leq D),感染按如下方式传播。

  • (i1)(i-1) 天夜晚结束时已感染的人,在第 ii 天夜晚结束时仍然保持感染状态。
  • 对于尚未感染的人,当且仅当他所住的房间与第 (i1)(i-1) 天夜晚结束时至少一个感染者所在房间的距离不超过 XiX_i 时,才会被新感染。

这里,房间 PPQQ 之间的距离定义为,仅使用走廊从房间 PP 移动到房间 QQ 时,走廊长度之和的最小可能值。如果仅使用走廊无法从房间 PP 移动到房间 QQ,则距离设为 1010010^{100}

对于每个 ii (1iN)(1\leq i\leq N),输出住在房间 ii 的人被新感染的日期。如果在第 DD 天夜晚结束时仍未感染,输出 1-1

输入格式

输入按以下格式从标准输入给出:

NN MM
U1U_1 V1V_1 W1W_1
U2U_2 V2V_2 W2W_2
\vdots
UMU_M VMV_M WMW_M
KK
A1A_1 A2A_2 \ldots AKA_K
DD
X1X_1 X2X_2 \ldots XDX_D

输出格式

输出 NN 行。

ii(1iN)(1\leq i\leq N) 输出住在房间 ii 的人被新感染的日期。

样例

4 4
1 2 2
2 3 1
2 4 3
3 4 2
1
1
2
3 3
0
1
1
2

感染的传播过程如下。

00 天夜晚,住在房间 11 的人被感染。

房间 11 到房间 2,3,42,3,4 的距离分别为 2,3,52,3,5。因此,由于 X1=3X_1=3,第 11 天夜晚住在房间 2233 的人被新感染。

房间 33 到房间 44 的距离为 22。因此,由于 X2=3X_2=3,第 22 天夜晚住在房间 44 的人也被感染。

因此,住在房间 1,2,3,41,2,3,4 的人分别在 0,1,1,20,1,1,2 天被新感染,所以每行一个,按此顺序输出 0,1,1,20,1,1,2

7 7
1 2 2
2 3 3
3 4 1
4 5 1
5 6 3
3 7 1
4 7 1
2
1 6
2
2 3
0
1
2
-1
2
0
-1
5 1
1 2 5
2
1 3
3
3 7 5
0
2
0
-1
-1

注意,并不一定总能仅使用走廊在任意两个房间之间移动。

数据范围

  • 1N3×1051 \le N \le 3\times 10^5
  • 0M3×1050 \le M \le 3\times 10^5
  • 1Ui<ViN1 \le U_i \lt V_i \le N
  • 所有 (Ui,Vi)(U_i,V_i) 互不相同
  • 1Wi1091 \le W_i \le 10^9
  • 1KN1 \le K \le N
  • 1A1<A2<<AKN1 \le A_1 \lt A_2 \lt \cdots \lt A_K \le N
  • 1D3×1051 \le D \le 3\times 10^5
  • 1Xi1091 \le X_i \le 10^9
  • 输入中的所有值均为整数
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2979
类型
传统题
Time Limit
4000ms
Memory Limit
1024MiB
上传者
标签