問題概要
問題ページ
-
D - Alter Altar
問題ページへ移動する
問題文
祭壇に、左から右へと一列に並ぶ \(N\) 個の石が祀られています。左から \(i\) 個目 \((1 \leq i \leq N)\) の石の色は文字 \(c_i\) として与えられ、\(c_i\) が R
のとき赤、W
のとき白です。
あなたは、以下の二種の操作を任意の順に何度でも行うことができます。
- 石を \(2\) 個選び (隣り合っていなくてもよい)、それらを入れ替える。
- 石を \(1\) 個選び、その石の色を変える (赤なら白に、白なら赤に)。
占い師によると、赤い石の左隣に置かれた白い石は災いを招きます。そのような白い石がない状態に至るには、最小で何回の操作が必要でしょうか。
制約
- \(2 \leq N \leq 200000\)
- \(c_i\) は
R
またはW
問題の考察
ACコード
import sys
import itertools
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
n = int(input().rstrip('\n'))
c = list(str(input().rstrip('\n')))
wc = c.count("W")
rc = c[-wc:].count("R") if wc != 0 else 0
print(rc)
if __name__ == '__main__':
solve()