公式

D - A_A_i 解説 by blackyuki


\(A\) に含まれる \(-1\)\(1\) 個以下の場合は例外処理し、それ以外の場合を考えます。

すぬけ君が書き換えた後の(\(B\) が辞書順最小となるような)数列 \(A\) に対し、\(A_i=1\) を満たす \(i\) は必ず存在し、そのうち最小の \(i\)\(p\) とします。このとき、すぬけ君が書いた数は \(1\)\(p\) のみであることが証明できます。

次の手順に従って \(i = 1,2, \ldots, N\) の順に \(B_i\) を確定していきます。

なお、最後まで \(p\) の値が確定しなかった場合、\(A_i=-1\) である最小の \(i\)\(p\) とする必要があります。

\(p\) の値を最小化するフェーズに入る前

\(A_i = 1\) の場合、\(p = i\) に確定。

\(A_i = -1\) の場合、\(A_i = p\) とする(\(p\) の値自体はまだ決まっていないことに注意)。さらに、\(i=1\) なら \(p=1\) に確定。

\(A_i \neq -1\) かつ \(A_{A_i} = p\) の場合、\(B_i = p\) なので、\(p\) を最小化するフェーズに入る。

\(A_i \neq -1\) かつ \(A_{A_i} = -1\) の場合:\(A_{A_i} = 1\) とする。

\(p\) の値を最小化するフェーズ

\(A_i = 1\) の場合、\(p = i\) に確定。

\(A_i = -1\) の場合、\(A_i = 1\) とし、\(p = i\) に確定。

\(A_i \neq -1\) かつ \(A_{A_i} = -1\) の場合、 \(A_{A_i} = 1\) とする。

\(p\) の値を確定させた後

\(A_i = -1\) の場合、\(A_i = p\) とする。

\(A_i \neq -1\) かつ \(A_{A_i} = -1\) の場合、\(A_{A_i} = 1\) とする。

投稿日時:
最終更新: