結果
問題 |
No.38 赤青白ブロック
|
ユーザー |
|
提出日時 | 2023-11-06 01:17:02 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 878 ms / 5,000 ms |
コード長 | 888 bytes |
コンパイル時間 | 186 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 76,792 KB |
最終ジャッジ日時 | 2024-09-25 22:56:24 |
合計ジャッジ時間 | 23,714 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
r, b = map(int, input().split()) S = list(input()) n = len(S) def check(L): m = len(L) for i in range(m): if L[i] == 0: ni = i + r if ni < m: if L[ni] == 0: return False elif L[i] == 1: ni = i + b if ni < m: if L[ni] == 1: return False return True ans = 0 for rbit in range(1 << 10): for bbit in range(1 << 10): L = [] ri, bi = 0, 0 for i in range(30): if S[i] == 'R': if (rbit >> ri) & 1: L.append(0) ri += 1 elif S[i] == 'B': if (bbit >> bi) & 1: L.append(1) bi += 1 else: L.append(2) if check(L): ans = max(ans, len(L)) print(ans)