AtCoder Regular Contest 044
翻译中…
Problem Statement
翻译中…
高橋君は最短路アルゴリズムが大好きです。毎日さまざまな最短路アルゴリズムを実装して遊んでいます。 しかし、高橋君は最短路を求めすぎてしまったので、最短路を求めるのに飽きてしまいました。
翻译中…
そこで高橋君は、ある頂点からほかの頂点への最短距離が特定の値になるような頂点数が$N$ですべての辺の長さが1の無向単純グラフの数を数えることにしました。
翻译中…
より正確には、高橋君は同じ頂点の間を結ぶ辺が複数存在せず、またすべての辺の$2$端点の頂点が異なるグラフの頂点を順に$1,2,...,N$として、 任意の$i$に対し、頂点$1$と頂点$i$を結ぶ経路上に存在する辺の個数の最小値が$A_i$になるようなグラフの総数を数えます。
翻译中…
整数$N$と$A_1,...,A_N$が与えられるので、このようなグラフの個数を$10^9+7$で割った余りを求めてください。
翻译中…
Input
翻译中…
入力は以下の形式で標準入力から与えられる。
翻译中…
N
A_1 A_2 ... A_N
翻译中…
$1$行目には、グラフの頂点数$N(1 ≦ N ≦ 10^5)$が与えられる。$2$行目には、頂点$1$から頂点$i$までの最短距離を表す整数列$A_1,...,A_N(0 ≦ A_1,...,A_N ≦ N-1)$が空白区切りで与えられる。
翻译中…
Output
翻译中…
条件を満たすグラフの個数を$10^9+7$で割った余りを出力せよ。
翻译中…
出力の末尾に改行を入れること。(21:40修正)
翻译中…
样例
Input #1
4
0 1 1 2
Output #1
6
下図の$6$通りのグラフが条件を満たします。

Input #2
4
0 1 2 0
Output #2
0
すべての辺の長さは$1$なので、頂点$1,4$間の距離が$0$となるグラフはありません。
Input #3
3
1 1 2
Output #3
0
頂点$1$から頂点$1$までの距離は$1$にはなりえません。
Input #4
17
0 1 1 2 2 4 3 2 4 5 3 3 2 1 5 4 2
Output #4
855391686
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。