{"trustable":true,"prependHtml":"\u003cstyle type\u003d\"text/css\"\u003e\n section pre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333;\n background: rgba(255, 255, 255, 0.5);\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n\u003c/style\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027\\\\(\u0027, right: \u0027\\\\)\u0027, display: false},\n {left: \u0027\\\\[\u0027, right: \u0027\\\\]\u0027, display: true}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"問題文","value":{"format":"HTML","content":"\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\u003cp\u003e高橋君は最短路アルゴリズムが大好きです。毎日さまざまな最短路アルゴリズムを実装して遊んでいます。\r\nしかし、高橋君は最短路を求めすぎてしまったので、最短路を求めるのに飽きてしまいました。\r\n\u003c/p\u003e\u003cp\u003eそこで高橋君は、ある頂点からほかの頂点への最短距離が特定の値になるような頂点数が\u003cvar\u003e\\(N\\)\u003c/var\u003eですべての辺の長さが1の無向単純グラフの数を数えることにしました。\r\n\u003c/p\u003e\u003cp\u003eより正確には、高橋君は同じ頂点の間を結ぶ辺が複数存在せず、またすべての辺の\u003cvar\u003e\\(2\\)\u003c/var\u003e端点の頂点が異なるグラフの頂点を順に\u003cvar\u003e\\(1,2,...,N\\)\u003c/var\u003eとして、\r\n任意の\u003cvar\u003e\\(i\\)\u003c/var\u003eに対し、頂点\u003cvar\u003e\\(1\\)\u003c/var\u003eと頂点\u003cvar\u003e\\(i\\)\u003c/var\u003eを結ぶ経路上に存在する辺の個数の最小値が\u003cvar\u003e\\(A_i\\)\u003c/var\u003eになるようなグラフの総数を数えます。\u003c/p\u003e\r\n\r\n\u003cp\u003e整数\u003cvar\u003e\\(N\\)\u003c/var\u003eと\u003cvar\u003e\\(A_1,...,A_N\\)\u003c/var\u003eが与えられるので、このようなグラフの個数を\u003cvar\u003e\\(10^9+7\\)\u003c/var\u003eで割った余りを求めてください。\u003c/p\u003e\r\n\r\n\u003c/section\u003e\r\n"}},{"title":"入力","value":{"format":"HTML","content":"\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\u003cp\u003e入力は以下の形式で標準入力から与えられる。\u003c/p\u003e\r\n\r\n\u003cpre\u003e\r\n\u003cvar\u003e\\(N\\)\u003c/var\u003e\r\n\u003cvar\u003e\\(A_1 A_2 ... A_N\\)\u003c/var\u003e\r\n\u003c/pre\u003e\r\n\r\n\u003cul class\u003d\"simple\"\u003e\r\n\r\n\t\u003cli\u003e\u003cvar\u003e\\(1\\)\u003c/var\u003e 行目には、グラフの頂点数\u003cvar\u003e\\(N(1 ≦ N ≦ 10^5)\\)\u003c/var\u003eが与えられる。\u003c/li\u003e\r\n\r\n\t\u003cli\u003e\u003cvar\u003e\\(2\\)\u003c/var\u003e 行目には、頂点\u003cvar\u003e\\(1\\)\u003c/var\u003eから頂点\u003cvar\u003e\\(i\\)\u003c/var\u003eまでの最短距離を表す整数列\u003cvar\u003e\\(A_1,...,A_N(0 ≦ A_1,...,A_N ≦ N-1)\\)\u003c/var\u003eが空白区切りで与えられる。\u003c/li\u003e\r\n\r\n\u003c/ul\u003e\r\n\r\n\u003c/section\u003e\r\n"}},{"title":"出力","value":{"format":"HTML","content":"\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\u003cp\u003e条件を満たすグラフの個数を\u003cvar\u003e\\(10^9+7\\)\u003c/var\u003eで割った余りを出力せよ。\u003c/p\u003e\r\n\u003cfont color\u003d\"red\"\u003e出力の末尾に改行を入れること。(21:40修正)\u003c/font\u003e\r\n\r\n\u003c/section\u003e\r\n"}},{"title":"Sample 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n4\r\n0 1 1 2\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n6\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003c/section\u003e\r\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003cp\u003e下図の\u003cvar\u003e\\(6\\)\u003c/var\u003e通りのグラフが条件を満たします。\u003c/p\u003e\r\n\r\n\u003cp\u003e\r\n\t\u003c/p\u003e\u003cdiv class\u003d\"img-nocaption\" align\u003d\"center\"\u003e\r\n\u003cimg src\u003d\"CDN_BASE_URL/66ac1a1803856f1732bb33ca3f724cfb?v\u003d1725611592\" width\u003d\"600\"\u003e\r\n\u003c/div\u003e\r\n\u003cp\u003e\u003c/p\u003e\r\n\r\n\u003c/section\u003e\r\n"}},{"title":"Sample 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n4\r\n0 1 2 0\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n0\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003c/section\u003e\r\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003cp\u003eすべての辺の長さは\u003cvar\u003e\\(1\\)\u003c/var\u003eなので、頂点\u003cvar\u003e\\(1,4\\)\u003c/var\u003e間の距離が\u003cvar\u003e\\(0\\)\u003c/var\u003eとなるグラフはありません。\u003c/p\u003e\r\n\r\n\u003c/section\u003e\r\n"}},{"title":"Sample 3","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n3\r\n1 1 2\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n0\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003c/section\u003e\r\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003cp\u003e頂点\u003cvar\u003e\\(1\\)\u003c/var\u003eから頂点\u003cvar\u003e\\(1\\)\u003c/var\u003eまでの距離は\u003cvar\u003e\\(1\\)\u003c/var\u003eにはなりえません。\u003c/p\u003e\r\n\r\n\u003c/section\u003e\r\n"}},{"title":"Sample 4","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n17\r\n0 1 1 2 2 4 3 2 4 5 3 3 2 1 5 4 2\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n855391686\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003c/section\u003e\r\n\r\n\r\n\u003csection\u003e\r\n\r\n\r\n\r\n\r\n\u003c/section\u003e\r\n"}}]}