まず、 の先頭に の 文字目の文字を結合し、 の末尾の文字を削除する処理を実装しましょう。
C++ では std::string
、Python では str
に対する文字列操作を行えば良いです。
ただし、このような算術右シフトを愚直に 回繰り返すと、 テストケースごとに最大 回の繰り返し処理を行うことになり、実行時間制限に間に合いません。
そこで、 となる場合に の 文字目の文字が 個連続する文字列になることを利用し、繰り返し処理の回数を高々 回に抑えると良いです。
繰り返し処理の回数を 回にしたり、 の場合を分ける位方針を取ることで、十分高速に動作します。