結果
問題 | No.2276 I Want AC |
ユーザー | minimum |
提出日時 | 2023-04-21 21:33:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 109 ms / 2,000 ms |
コード長 | 620 bytes |
コンパイル時間 | 287 ms |
コンパイル使用メモリ | 81,860 KB |
実行使用メモリ | 123,776 KB |
最終ジャッジ日時 | 2024-11-06 15:02:25 |
合計ジャッジ時間 | 5,905 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 56 |
ソースコード
N = int(input()) S = input() ans = 0 lsc = [] cnt = 0 for i in range(N): if S[i] == 'A': cnt += 1 elif S[i] == '?': lsc.append(cnt) else: ans += cnt lsc.reverse() acc = [0] for i in range(len(lsc)): acc.append(acc[-1] + lsc[i]) lsa = [] cnt = 0 for i in range(N - 1, -1, -1): if S[i] == 'C': cnt += 1 elif S[i] == '?': lsa.append(cnt) lsa.reverse() aca = [0] for i in range(len(lsa)): aca.append(aca[-1] + lsa[i]) aca.reverse() L = len(lsa) fans = ans for i in range(L + 1): fans = max(fans, ans + acc[i] + aca[i] + i * (L - i)) print(fans)