은하계의 충돌이 다가온다. MdI가 다스리는 은하계가 우리 은하를 무력으로 합병하려 한다. 우리 정보국은 적의 본부에 잠입해 병력 이동 계획을 통째로 알아냈다.
적의 병력은 N개의 요새에 나뉘어 주둔한다. 요새 i에 주둔한 병력의 힘의 통계값을 ui라고 하자. 계획은 링크를 따라 병력을 옮기는 것이다. 링크 (s,d,p)는 매 시간 요새 s에 있는 병력 가운데 비율 p가 요새 d로 넘어간다는 뜻이다. 요새 사이를 오가는 시간은 무시한다.
한 시간 안에 일어나는 이동은 모두 그 시간이 시작될 때의 값을 기준으로 동시에 일어난다. 그래서 한 시간이 지나면 요새 i의 값은 다음과 같이 바뀐다.
ui′=ui−∑(s,d,p):s=ip⋅ui+∑(s,d,p):d=ip⋅us
정부는 공격을 시작할 시각 t를 정했고, 적의 병력은 그때까지 계획대로 t시간 동안 움직인다. 적의 은하는 매우 멀어서 우리 함대가 도착하는 데 한 시간이 걸린다. MdI는 함대가 출발하는 순간 목표를 알아채고, 그곳에 닿을 수 있는 병력을 전부 즉시 움직인다. 이때는 링크의 방향을 무시하고 어느 쪽으로든 이동할 수 있으므로, 목표 요새 v와 링크로 이어진 요새는 병력을 하나도 남기지 않고 v로 보낸다.
따라서 함대가 도착한 순간 요새 v에 모이는 힘의 통계값 gv는, t시간이 지난 시점의 uv에 v와 링크로 이어진 요새의 값을 모두 더한 값이다. A(v)를 v와 링크 하나 이상으로 이어진 요새의 집합이라고 하면 (자기 자신은 넣지 않는다)
gv=uv+∑w∈A(v)uw
이다. 링크 방향은 따지지 않고, 두 요새를 잇는 링크가 여러 개여도 그 요새의 값은 한 번만 더한다.
적의 은하에서 가장 약한 지점, 다시 말해 gv가 가장 작은 요새의 값을 구하여라.
첫째 줄에 테스트 케이스의 개수 T (1≤T≤10)가 주어진다.
각 테스트 케이스의 첫째 줄에는 적의 요새의 수 N (1≤N≤100), 링크의 수 l (0≤l≤(N−1)2), 공격을 시작할 시각 t (0≤t≤5000)가 주어진다. 둘째 줄에는 N개의 실수 u0,u1,…,uN−1 (0≤ui≤1000)이 주어진다. ui는 요새 i에 주둔한 병력의 힘의 통계값이다.
이어지는 l개 줄에는 링크가 한 줄에 하나씩 주어진다. 각 줄은 정수 sj (0≤sj<N), 정수 dj (0≤dj<N), 실수 pj (0<pj≤1)로 이루어지고, 매 시간 요새 sj의 병력 가운데 비율 pj가 요새 dj로 이동한다는 뜻이다. 같은 쌍이 여러 번 나올 수 있고 sj=dj인 링크도 있을 수 있다. 한 요새에서 나가는 링크의 비율을 모두 더한 값은 1을 넘지 않는다.
각 테스트 케이스마다 적의 은하에서 가장 약한 지점의 값, 즉 함대가 도착했을 때 한 요새에 모이는 힘의 통계값 가운데 가장 작은 값을 한 줄에 하나씩 출력한다.
값은 소수점 아래 일곱째 자리에서 반올림해 소수점 아래 여섯 자리까지 출력한다. 예를 들어 정답이 305이면 305.000000을 출력한다. 입력은 정답이 반올림 경계에서 충분히 떨어지도록 주어지므로 반올림 방향이 갈리는 경우는 없다.
공격이 시작되는 순간에는 모든 링크를 양방향으로 쓸 수 있다. 목표 요새와 링크로 이어진 요새는 링크의 방향과 상관없이 병력 전부를 목표 요새로 보낸다.
그 앞의 t시간 동안 일어나는 이동은 계획대로 방향을 지킨다. 방향이 사라지는 것은 마지막 한 시간뿐이다.