ARC125 A Dial Up
数列をシフトするのではなく, 自分自身が動くとして考える.
すると, 現在位置に最も近い次の文字の位置を, 二分探索によって求めればよい.
計算量は
$ O(N \log N)
となる.
実装例:
https://atcoder.jp/contests/arc125/submissions/25292512