AtCoder Beginner Contest 250 C問題 Adjacent Swaps
問題
提出解答
問題の概要
長さ の整数列 がある. 最初, である.
の順に以下のようにして に対して操作する.
- ならば, として, を入れ替える.
- ならば, を入れ替える.
最終的な を求めよ.
制約
解法
数列 だけでなく, 次のようにして, を定める: . この は要素 がどこにあるかを記録する変数である.
この列 を利用することにより, 要素 の場所を 時間で特定できる. これから必要な要素を交換して処理することで各操作を で処理できる.
よって, 全体で で処理できる.