結果
| 問題 |
No.38 赤青白ブロック
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-07-09 16:00:08 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,707 ms / 5,000 ms |
| コード長 | 1,023 bytes |
| コンパイル時間 | 355 ms |
| コンパイル使用メモリ | 82,372 KB |
| 実行使用メモリ | 77,096 KB |
| 最終ジャッジ日時 | 2024-07-23 13:09:19 |
| 合計ジャッジ時間 | 45,566 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 27 |
ソースコード
import math
mmi, mma = math.inf, max
bls, brs = lambda x, y: x << y, lambda x, y: x >> y
kr, kb = map(int, input().split())
s = input()
red, blue = [], []
t = {}
use = {}
for i in range(1, 31):
use[i] = True
t[i] = s[i - 1]
if t[i] == "R":
red.append(i)
elif t[i] == "B":
blue.append(i)
ret = 10
tot = bls(1, 20)
for i in range(tot):
ti = i
for j in range(1, 11):
tgt = red[j - 1]
use[tgt] = ti % 2 == 1
ti = brs(ti, 1)
for j in range(1, 11):
tgt = blue[j - 1]
use[tgt] = ti % 2 == 1
ti = brs(ti, 1)
w = []
for j in range(1, 31):
if use[j]:
w.append(t[j])
valid = True
for j in range(1, len(w) - kr + 1):
if w[j - 1] == "R" and w[j + kr - 1] == "R":
valid = False
break
for j in range(1, len(w) - kb + 1):
if w[j - 1] == "B" and w[j + kb - 1] == "B":
valid = False
break
if valid:
ret = mma(ret, len(w))
print(ret)