atcoder#AGC005C. [AGC005C] Tree Restoring

[AGC005C] Tree Restoring

配点 : 700700

問題文

青木君は数列と木が大好きです。

青木君はある日高橋くんから長さ NN の数列 a1,a2,...,aNa_1, a_2, ..., a_N を貰いました。そしてこの数列を見て、木を作りたくなりました。

青木君が作りたいのは、頂点数が NN で、全ての i=1,2,...,Ni = 1,2,...,N について頂点 ii と最も遠い頂点の距離が aia_i となる木です。なお、辺の長さは全て 11 とします。

これを満たす木が存在するか判定してください。

制約

  • 2N1002 \leq N \leq 100
  • 1aiN11 \leq a_i \leq N-1

入力

入力は以下の形式で標準入力から与えられる。

NN

a1a_1 a2a_2 ...... aNa_N

出力

条件を満たす木が存在するならば Possible、しないならば Impossible と出力する。

5
3 2 2 3 3
Possible

上図は条件を見たす木の一例です。赤い矢印は最も遠い頂点への経路を表します。

3
1 1 2
Impossible
10
1 2 2 2 2 2 2 2 2 2
Possible
10
1 1 2 2 2 2 2 2 2 2
Impossible
6
1 1 1 1 1 5
Impossible
5
4 3 2 3 4
Possible