1522 - Douteki Programming
問題
文字列 S について 1165 - ハッピー文字列YDK の答えを返す関数を YDK(S) とする。すなわち、 YDK(YDKYDK
) =4 である。
あなたは長さ N の文字列 S を所持しており、この文字列に対して以下のような更新クエリが Q 回にわたって与えられる。各更新後の文字列 S について、YDK(S) を求めよ。
i 回目のクエリでは整数 li,ri 及び文字 ci が与えられ、意味は次の通りである。
- S の li 文字目から ri 文字目までを文字 ci に置き換える。
入力
入力は以下の形式で標準入力から与えられる。
N Q S l1 r1 c1 l2 r2 c2 ⋮ lQ rQ cQ
出力
出力は Q 行からなり、i 行目には i 番目までの更新を行った後の文字列 S について YDK(S) を出力せよ。
制約
全ての入出力ケースについて以下を満たす。
- 1≤N,Q≤2×105
- S は英大文字のみからなる長さ N の文字列
- 1≤li≤ri≤N
- ci は英大文字
入出力例
入力例1
6 3 YYDDDD 5 6 K 1 4 Y 5 5 D
出力例1
8 0 4
- 1回目: S=
YYDDKK
なので8 - 2回目: S=
YYYYKK
なので0 - 3回目: S=
YYYYDK
なので4
入力例2
8 5 YDKKDYKK 4 8 C 6 8 K 7 7 D 2 5 Y 3 4 N
出力例2
1 4 4 5 3