#icpc2015autumnj. [icpc2015autumn_j]Longest Shortest Path

[icpc2015autumn_j]Longest Shortest Path

问题描述

给定一个有向图和两个节点sstt。给定的图中可能包含同一节点对之间的多条边,但不包括自环。每条边ee都有其初始长度ded_e和成本cec_e。你可以通过支付成本来延长一条边。形式上,将边ee的长度从ded_e改变为de+xd_e + x的成本为xcex \cdot c_e。(注意xx可以是非整数。)边不能被缩短。

你的任务是通过在成本PP内延长一些边,使得从节点ss到节点tt的最短路径的长度最大化。你可以假设从sstt至少存在一条路径。


输入

输入由单个测试用例组成,格式如下所示。

NN MM PP ss tt
v1v_1 u1u_1 d1d_1 c1c_1
...
vMv_M uMu_M dMd_M cMc_M

第一行包含五个整数NNMMPPssttNN (2N2002 \leq N \leq 200)和MM (1M2,000 1\leq M \leq 2{,}000)分别是给定图中的节点数和边数,PP (0P1060 \leq P \leq 10^6)是你可以支付的成本限制,sstt (1s,tN1 \leq s, t \leq Nsts \neq t)分别是起始节点和目标路径的结束节点。以下的MM行中,每行包含四个整数viv_iuiu_idid_icic_i,表示从viv_iuiu_i1vi,uiN1 \leq v_i, u_i \leq Nviuiv_i \neq u_i)有一条边,其初始长度为did_i1di101 \leq d_i \leq 10)且成本为cic_i1ci101 \leq c_i \leq 10)。

输出

输出从节点ss到节点tt的最短路径的最大长度,通过在成本PP内延长一些边。输出结果的绝对或相对误差不超过10610^{-6}


示例输入1

3 2 3 1 3
1 2 2 1
2 3 1 2```

### 示例输入1的输出

```plain
6.0000000```

---

### 示例输入2

```plain
3 3 2 1 3
1 2 1 1 
2 3 1 1
1 3 1 1```

### 示例输入2的输出

```plain
2.5000000```

---

### 示例输入3

```plain
3 4 5 1 3
1 2 1 2
2 3 1 1
1 3 3 2
1 3 4 1```

### 示例输入3的输出

```plain
4.2500000```