[AtCoder] ABC 072 D – Derangement

問題

方針

\( p_i = i \) となる \( i \) に対して、\( (p_i, p_{i+1}) = (p_{i+1}, p_i)\) と交換します。このとき、\( p_{i+1} = i \) となるので、交換によるロスはありません。\( p_N = N \) のときは、\( (p_{N-1}, p_N) = (p_N, p_{N-1}) \) と交換すれば良いです。

コード