公式

E - EGFクエリ 解説 by sounansya


クエリ 1 で実際に先頭の文字を消去するのではなく、offset を保持しておき仮想的に文字を削除するものとします。クエリ 2 では \(x\) に offset を足し、最終的な出力も offset 分だけ先頭の文字を出力しないようにすれば良いです。

入力の量が多いことに注意してください。

実装例 (Python3)

import sys
input = sys.stdin.readline
n, q = map(int, input().split())
s = [c for c in input().rstrip()]
st = 0
for _ in range(q):
    ty, x = map(int, input().split())
    if ty == 1:
        x += st
        s[x], s[x - 1] = s[x - 1], s[x]
    else:
        st += x
print("".join(s[st:]))

投稿日時:
最終更新: