#abc252g. [abc252_g]Pre-Order
[abc252_g]Pre-Order
問題文
頂点 を根とした 頂点の根付き木があります。頂点には の番号がついています。
根から始めて深さ優先探索を行い、行きがけ順で頂点番号を記録したところ、順に となりました。
ただし、深さ優先探索では、現在の頂点に複数の子がある場合、まだ探索していない頂点のうち最も番号が小さい頂点へ移動することとします。
行きがけ順とは
根から始めて次の手順を繰り返して根付き木上の頂点を列挙します。* 現在いる頂点 をまだ記録していなければ記録する。
- その後、 の子のうち、まだ探索していないものがあればその頂点に移動する。
- そうでない時、 が根であれば探索を終了する。そうでなければ、 の親に移動する。 この時、列挙された頂点を順に並べたものが行きがけ順です。
条件をみたす根付き木として考えられるものの数を で割った余りを求めてください。
ただし、ある つの「頂点 を根とした 頂点の根付き木」が異なるとは、ある根以外の頂点が存在して、その親が異なる事を言います。
制約
- はすべて異なる
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
条件をみたす根付き木として考えられるものの数を で割った余りを出力せよ。
入力例 1
4
1 2 4 3
出力例 1
3
条件をみたす根付き木としては次の 通りが考えられます。よって、 を出力します。
また、次のような木は考えられません。頂点 の子の頂点のうち、番号の小さい頂点 が頂点 より先に探索され、 このときの行きがけ順は となるからです。
入力例 2
8
1 2 3 5 6 7 8 4
出力例 2
202