#CSP1125. 自驾游 (trip)
自驾游 (trip)
题目描述
小 Z 决定前往比特国来一次自驾游,一边旅行一边欣赏风景。
比特国有 个城市,编号 ,由 条单向的公路连接。
第 条公路从第 个城市出发,前往第 个城市,路程是 米。
小 Z 决定从 号城市出发,最终到达 号城市(保证 ),并且你的车子初始速度 为 米每秒。
全国共有 个维修站,第 个位于第 个城市,小 Z 可以停留在这里花 秒的时间将车升级,使得车速翻倍。小 Z 可以在某个维修站将车升级多次,但每次升级都会花 秒的时间。例如,假设小 Z 当前的车速为 ,并且恰好在第 个城市,那么他可以在第 个维修站花 的时间将车升级三次,使得车速变为 。
假设小 Z 的车速是 米每秒,那么安全通过一条长度为 米的公路所需的时间为 秒( 代表最小的不小于 的整数)。然而,有些公路是平整的,而另一些则是坑坑洼洼的。每当小 Z 通过一条坑坑洼洼的路,车的所有升级都会损耗,通过这条路之后车速会立即变回 米每秒(但在通过这条路的过程中车速不会改变)。
现在小 Z 想知道,他到达 号城市最少需要花多少秒?
输入格式
从 trip.in
文件读入数据。
第一行四个整数 ,代表城市个数,道路条数,起点城市编号,终点城市编号。
接下来 行,每行三个整数 和一个字符 ( 只会是 G
或 B
),描述第 条道路从第 个城市出发,前往第 个城市,路程是 米,路况是 。如果 是 G
代表这条公路是平整的,否则是坑坑洼洼的。
接下来一行一个整数 ,代表维修站的个数。
接下来 行,每行两个整数 ,代表第 个维修站在第 个城市,升级一次需要花 秒。
输出格式
输出到 trip.out
文件。
输出一个整数,代表小 Z 到达 号城市所需的最少秒数。如果小 Z 无法到达 号城市,输出 。
样例
样例 2
点击链接 ex_trip2.in 和 ex_trip2.out 下载大样例 2 的输入数据和输出数据。
数据范围
对于全部的数据,保证:
对于 的数据,保证 。
对于另外 的数据,保证所有的 。
对于另外 的数据,保证 。
对于另外 的数据,保证 。
对于剩下的 的数据,没有特殊限制。
Related
In following contests: