問題
https://atcoder.jp/contests/abc258/tasks/abc258_c

方針
文字自体を置き換える必要はなくて、読み込みの位置のみを更新していけば良い。
解答
#atcoder template
def main():
import sys
input = sys.stdin.readline
#文字列入力の時は上記はerrorとなる。
#ここにコード
#input
n, q = map(int, input().split())
s = list(str(input()))
#output
temp = 0
for i in range(q):
t, x = map(int, input().split())
if t == 1:
temp += x
else:
print(s[(x-temp-1)% n])
#N = 1のときなどcorner caseを確認!
if __name__ == "__main__":
main()提出結果
https://atcoder.jp/contests/abc258/submissions/33015611
感想
これよりもB問題の方が難しい。
関連リンク
ABC 110 C-String Transformation
ABC 125 D-Flipping Sign


コメント