#arc044b. [arc044_b]最短路問題
[arc044_b]最短路問題
问题描述
高桥君非常喜欢最短路径算法。他每天都在实现和玩各种最短路径算法。但是,高桥君由于求解最短路径的次数太多,已经对求解最短路径感到厌倦了。
因此,高桥君决定统计某个顶点到其他顶点的最短距离为特定值的顶点数量为,并且所有边的长度均为1的无向简单图的数量。
更准确地说,高桥君按照顶点依次编号的方式给定图的顶点,其中不存在多条连接同一顶点之间,且每条边的两个端点顶点不同的图。他要计算满足对任意,顶点和顶点之间的路径上存在的边的最小个数为的图的总数。
给定整数和,请计算满足条件的图的数量除以所得的余数。
输入
输入从标准输入读取,具有以下格式。
- 第行包含图的顶点数。
- 第行包含以空格分隔的整数序列,表示从顶点到顶点的最短距离。
输出
输出满足条件的图的数量除以所得的余数。
请在输出末尾添加换行符。(已修正于21:40)
示例1
4
0 1 1 2
输出示例1
6
下图中的种图满足条件。
示例2
4
0 1 2 0
输出示例2
0
由于所有边的长度为,因此不存在顶点和顶点之间距离为的图。
示例3
3
1 1 2
输出示例3
0
顶点到顶点的距离不可能为。
示例4
17
0 1 1 2 2 4 3 2 4 5 3 3 2 1 5 4 2
输出示例4
855391686