結果
問題 | No.38 赤青白ブロック |
ユーザー | 👑 obakyan |
提出日時 | 2022-01-10 11:12:38 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 1,622 ms / 5,000 ms |
コード長 | 993 bytes |
コンパイル時間 | 80 ms |
コンパイル使用メモリ | 6,948 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-14 10:45:26 |
合計ジャッジ時間 | 41,952 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
local mmi, mma = math.min, math.max local bls, brs = bit.lshift, bit.rshift local kr, kb = io.read("*n", "*n", "*l") local s = io.read() local red, blue = {}, {} local t = {} local use = {} for i = 1, 30 do use[i] = true t[i] = s:sub(i, i) if t[i] == "R" then table.insert(red, i) elseif t[i] == "B" then table.insert(blue, i) end end local ret = 10 local tot = bls(1, 20) for i = 0, tot - 1 do local ti = i for j = 1, 10 do local tgt = red[j] use[tgt] = ti % 2 == 1 ti = brs(ti, 1) end for j = 1, 10 do local tgt = blue[j] use[tgt] = ti % 2 == 1 ti = brs(ti, 1) end local w = {} for j = 1, 30 do if use[j] then table.insert(w, t[j]) end end local valid = true for j = 1, #w - kr do if w[j] == "R" and w[j + kr] == "R" then valid = false break end end for j = 1, #w - kb do if w[j] == "B" and w[j + kb] == "B" then valid = false break end end if valid then ret = mma(ret, #w) end end print(ret)