結果
| 問題 |
No.1021 Children in Classrooms
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2020-04-10 22:36:18 |
| 言語 | Lua (LuaJit 2.1.1734355927) |
| 結果 |
AC
|
| 実行時間 | 68 ms / 2,000 ms |
| コード長 | 1,205 bytes |
| コンパイル時間 | 309 ms |
| コンパイル使用メモリ | 6,940 KB |
| 実行使用メモリ | 11,008 KB |
| 最終ジャッジ日時 | 2024-09-15 21:08:52 |
| 合計ジャッジ時間 | 2,288 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge6 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
local mmi, mma = math.min, math.max
local n, m = io.read("*n", "*n")
local a = {}
for i = 1, n do a[i] = io.read("*n") end
_u = io.read("*l")
local s = io.read()
local t = {}
for i = 1, m do
t[i] = s:sub(i, i) == "L" and -1 or 1
end
local min, max = 0, 0
local cur = 0
for i = 1, m do
cur = cur + t[i]
min, max = mmi(min, cur), mma(max, cur)
end
local left_dead_edge = mmi(n, 1 - min)
local right_dead_edge = mma(1, n - max)
local function getpos(spos)
for i = 1, m do
spos = spos + t[i]
spos = mmi(n, mma(1, spos))
end
return spos
end
if right_dead_edge <= left_dead_edge then
-- unified
local p = getpos(1)
local sum = 0
for i = 1, n do
sum = sum + a[i]
end
local ret = {}
for i = 1, n do ret[i] = 0 end
ret[p] = sum
print(table.concat(ret, " "))
else
local ret = {}
for i = 1, n do ret[i] = 0 end
local p = getpos(left_dead_edge)
for i = 1, left_dead_edge do
ret[p] = ret[p] + a[i]
end
for i = left_dead_edge + 1, right_dead_edge - 1 do
ret[p + i - left_dead_edge] = ret[p + i - left_dead_edge] + a[i]
end
p = getpos(right_dead_edge)
for i = right_dead_edge, n do
ret[p] = ret[p] + a[i]
end
print(table.concat(ret, " "))
end