双调路径
题号:NC50383
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

如今的道路收费发展很快。道路的密度越来越大,因此选择最佳路径是很现实的问题。城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用。
路径是连续经过的道路组成的。总时间是各条道路旅行时间的和,总费用是各条道路所支付费用的总和。一条路径越快,或者费用越低,该路径就越好。严格地说,如果一条路径比别的路径更快,而且不需要支付更多费用,它就比较好。反过来也如此理解。如果没有一条路径比某路径更好,则该路径被称为最小路径。
这样的最小的路径有可能不止一条,或者根本不存在路径。
问题:读入网络,计算最小路径的总数。费用时间都相同的两条最小路径只算作一条。你只要输出不同种类的最小路径数即可。

输入描述:

第一行有四个整数,城市总数n,道路总数m,起点和终点城市s,e;
接下来的m行每行描述了一条道路的信息,包括四个整数,两个端点p,r,费用c,以及时间t;
两个城市之间可能有多条路径连接。

输出描述:

仅一个数,表示最小路径的总数。
示例1

输入

复制
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

说明

样例输入如下图bic.png

从1到4有4条路径。为1 \to2 \to4(费用为4,时间为5),1 \to3 \to4(费用为4,时间为5),1 \to2 \to3 \to4(费用为6,时间为4),1 \to3 \to2 \to4(费用为4,时间为10)。
1 \to3 \to41 \to2 \to41 \to3 \to2 \to4更好。有两种最佳路径:费用为4,时间为5(1 \to2 \to41 \to3 \to4)和费用为6,时间为4(1 \to2 \to3 \to4)。

备注:

对于全部数据,,保证