https://atcoder.jp/contests/abc097/tasks/arc097_b
- 交換可能な数の間に辺をはったグラフを考える
- 数が行き来可能なインデックスは強連結成分に含まれる
- ある強連結成分をGとして、それに含まれる辺の総数をEとすると、少なくとも本の辺をもつ
- 本の辺をもつとき、Gは木になる
このとき、Gに含まれる数を並べ替えて、にできるかどうかを考察する。強連結成分から適当な辺を除いて木にしたとき、実際にならべかえる方法を構築して証明する
- 適当な頂点を定める
- 葉にとなるように数を移動する
- Gにとなるノードがないは適当に葉を埋めるために使う
- 埋めた葉は、その後の数に移動に関わらないので、木から除く
- 以下2-4を繰り返し
実装