Cまで。
No.1425 Yet Another Cyclic Shifts Sorting
自力AC。
二種類あれば隣接要素SWAPができそうなので、答えは高々2。0回の判定は簡単なので、1回でできるかどうかを調べれば良い。
一回でできるかどうかは、ソートした配列と比較し、最大値が一致していれば消していく。
残った配列について、ソートしたものを巡回したものになっていれば良いので、ローリングハッシュを使って判定した。
が、解説を見たらもっと簡単にできたらしい。なるほど。
ところで、なぜタグが「動的計画法」なのだろう? 解けたと思った後タグを見たらそう書いてあって、何か間違っているのでは? と疑心暗鬼になりながら実装した。
(タグに頼るのはいけないかもしれないけど、yukicoderのタグはいつも出したまま問題を考えています)