結果
問題 |
No.2276 I Want AC
|
ユーザー |
![]() |
提出日時 | 2023-04-21 21:36:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 114 ms / 2,000 ms |
コード長 | 676 bytes |
コンパイル時間 | 263 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 94,336 KB |
最終ジャッジ日時 | 2024-11-06 15:05:37 |
合計ジャッジ時間 | 6,592 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 56 |
ソースコード
n = int(input()) s = list(input()) v = 0 hind = [] for i in range(n): if s[i] == '?': v += 1 hind.append(i) nowlft = 0 tmp = 0 for i in range(n): if s[i] == '?' or s[i] == 'A': nowlft += 1 elif s[i] == 'C': tmp += nowlft rui = [0] * n ruil = [0] * n for i in range(n): if s[i] == 'C': rui[i] += 1 if s[i] == 'A': ruil[i] += 1 for i in range(n-2,-1,-1): rui[i] += rui[i+1] for i in range(n-1): ruil[i+1] += ruil[i] ans = tmp m = len(hind) rgtc = 0 lftc = m #print(rui) #print(ruil) for i in range(m-1,-1,-1): # s[i] : "(" -> ")" tmp -= rui[hind[i]] tmp -= rgtc lftc -= 1 rgtc += 1 tmp += lftc tmp += ruil[hind[i]] ans = max(ans, tmp) print(ans)