题目描述
在 n 个人中,某些人的银行账号之间可以互相转账。不同的转账关系需要扣除不同比例的手续费(从转账金额中扣除 z%,即到账金额为转账金额的 (100−z)%)。
给定这些转账关系,请问 A 最少需要准备多少钱,才能使得经过若干次转账后,B 最终收到 100 元。
输入格式
第一行包含两个正整数 n,m,分别表示总人数和可以互相转账的关系对数。
接下来 m 行,每行包含三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z% 的手续费(0<z<100)。
最后一行包含两个正整数 A,B,表示起点和终点。数据保证 A 与 B 之间可以直接或间接地转账。
输出格式
输出一行一个实数,表示 A 最少需要准备的总金额,结果精确到小数点后 8 位。
样例
3 3
1 2 1
2 3 2
1 3 3
1 3
103.07153164
样例解释
路径 1→3 直接转账扣除 3% 手续费,到账比例为 97%,所需初始金额为 100/0.97≈103.09278350。
路径 1→2→3,到账比例依次为 99% 和 98%,总到账比例为 0.99×0.98=0.9702,所需初始金额为 100/0.9702≈103.07153164,更优。
故输出 103.07153164。
数据范围
- 1≤n≤2000
- 1≤m≤100000
- 0<z<100
- 1≤A,B≤n,且 A=B,数据保证 A 与 B 连通。