6583 - 双调路径
时间限制 : 1 秒
内存限制 : 128 MB
如今的道路收费发展很快。道路的密度越来越大,因此选择最佳路径是很现实的问题。城市的道路是双向的,每条道路是由固定的旅行时间以及需要支付的费用。
路径是连续经过的道路组成的。总时间是各条道路旅行时间的和,总费用是各条道路所支付费用的总和。一条路径越快,或者费用越低,该路径就越好。严格地说,如果一条路径比别的路径更快,而且不需要支付更多费用,它就比较好。反过来也可以这么理解,如果没有一条路径比某路径更好,则该路径被称为最佳路径。
这样的最佳的路径有可能不止一条,或者根本不存在。
例如,图3-3-1给出了一个网络,每条路有两个参数:费用和时间。
从1到4有4条路径。1-2-4(fee4,time5),1-3-4(fee4,time5),1-2-3-4(fee6,time4),1-3-2-4(fee4,time10)。
1-3-4和1-2-4比1-3-2-4更好。有两条最佳路径:fee4,time5(roats 1-2-4 and 1-3-4)和fee6,time4(roat 1-2-3-4)。
问题:读入网络,计算最佳路径的总数。费用时间都相同的两条最佳路径只算作一条。你只要输出不同种类的最佳路径数即可。
输入
文件的第一行有4个整数,城市总数n,1≤n≤100,道路总数m,0≤m≤300,起点和终点城市s,e,1≤s,e≤n,s≠e。接下来的m行每行描述了一条道路的信息,包括4个整数,两个端点p,r,费用c,以及时间t,1≤p,r≤n,p≠r,0≤c≤100,0≤t≤100。
两个城市之间可能有多条道路连接。
输出
仅一个数,表示最佳路径的总数。
样例
输入
4 5 1 4 2 1 2 1 3 4 3 1 2 3 1 2 3 1 1 4 2 4 2 4
输出
2
来源
一本通