結果
| 問題 |
No.38 赤青白ブロック
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 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)