racing
竞速领域大神 ekxk344 决定考一考你对竞速游戏的理解。
赛车地图可以抽象为 n 个节点 m 条边的带权强连通有向图。
边 (ui,vi) 有边权 pi,表示在 ui 的赛车一个单位时间后有 106pi 的概率到达节点 vi,保证每个节点的出边边权之和为 106。
地图一共分为 T 个区域,节点 x 有所属的区域 cx,保证每条边 (ui,vi) 都满足 cui+1≡cvi(modT)。
你需要对每个节点 x 求出赛车从 x 出发期望多少单位时间后第一次回到节点 x。
输入格式
第一行包含三个正整数 n,m,T,分别表示赛车地图的节点数、边数与区域数。
接下来一行包含 n 个正整数,第 x 个表示节点 x 所在的区域 cx。
接下来 m 行,每行包含三个正整数 ui,vi,pi,表示有边权为 pi 的边 (ui,vi)。
输入保证 1≤ui,vi≤n,1≤pi≤106,1≤cx≤T。
输入保证 cui+1≡cvi(modT),且每个节点出边边权之和为 106。
输入保证该有向图强连通。
输出格式
输出 n 行每行一个小数,第 x 行的小数表示节点 x 的答案。
对于每个测试点,输出的每个数与标准答案绝对或相对误差不超过 10−6 即可通过该测试点。
提示
共有 20 个测试点,每个测试点 5 分。
对于所有测试点,1≤T≤n≤5×104,1≤m≤105。
测试点 1∼2 有 n≤10,m≤20,T=1。
测试点 3∼5 有 n≤50,m≤100,T=1。
测试点 6∼8 有 n≤100,m≤105,T=1。
测试点 9∼14 有 n≤500,m≤105,T=1。
测试点 15∼20 有 n≤5×104,m≤105,T=100