#joi2014yoe. [joi2014yo_e]タクシー (Taxis)

[joi2014yo_e]タクシー (Taxis)

问题

IOI国由 NN 个城市组成,编号从城市 11 到城市 NN ,城市之间通过道路相连。IOI国有 KK 条道路,每条道路连接两个不同的城市。车辆可以双向自由行驶在道路上,但不能通过非道路的地点从一个城市到达另一个城市。

JOI同学住在IOI国的城市 11 ,决定乘坐出租车去祖母的家,位于城市 NN 。IOI国有 NN 家出租车公司,分别编号从出租车公司 11 到出租车公司 NN 。IOI国的出租车公司有一些特殊规则:

  • 只能在出租车公司 ii 的出租车上乘车,其中 ii 是城市 ii 的编号。
  • 出租车公司 ii 的车费固定为 CiC_i ,不论乘车路程如何。
  • 出租车公司 ii 的出租车在乘车后连续最多只能经过 RiR_i 条道路。

例如,当 R1=2R_1 = 2 时,如果乘坐城市 11 的出租车,则最多只能经过 22 条道路,因此如果需要经过 33 条以上的道路,则需要在途中的城市换乘出租车。

JOI同学不能在城市以外的地点乘坐或下车出租车,也不能使用除出租车以外的交通方式。请编写一个程序,计算JOI同学到达城市 NN 所需的最小总车费。


输入

输入由 1+N+K1 + N + K 行组成。

11 行包含两个整数 NNKK2N5,0002 \leqq N \leqq 5,000N1K10,000N - 1 \leqq K \leqq 10,000),表示IOI国有 NN 个城市和 KK 条道路。

接下来的 NN 行中的第 ii 行( 1iN1 \leqq i \leqq N)包含两个整数 CiC_iRiR_i1Ci10,0001 \leqq C_i \leqq 10,0001RiN1 \leqq R_i \leqq N),表示第 ii 家出租车公司的车费为 CiC_i ,乘车后连续最多经过 RiR_i 条道路。

接下来的 KK 行中的第 jj 行( 1jK1 \leqq j \leqq K)包含两个不同的整数 AjA_jBjB_j1Aj<BjN1 \leqq Aj < Bj \leqq N),表示城市 AjA_j 和城市 BjB_j 之间存在一条道路。同一对 (Aj,Bj)(A_j, B_j) 不会出现两次以上。

在给定的输入数据中,保证从任意一个城市到另一个城市都可以通过乘坐出租车到达。

输出

输出一个整数,表示JOI同学从城市 11 前往城市 NN 所需的最小总车费。


示例输入 1

6 6
400 2
200 1
600 3
1000 1
300 5
700 4
1 2
2 3
3 6
4 6
1 5
2 4

示例输出 1

700

上述输入输出示例对应以下图示。圆表示城市,线表示道路。

2014-yo-t5-fig01.png

为了以最低的车费到达城市 66 ,JOI同学可以按照以下步骤进行:

从城市 11 乘坐出租车去城市 55 (车费为 400400 )。
从城市 55 乘坐出租车去城市 66 (车费为 300300 )。
如果JOI同学按照这种路径行驶,总车费为 400+300=700400 + 300 = 700 ,因此输出为 700700