結果
問題 | No.193 筒の数式 |
ユーザー |
👑 |
提出日時 | 2019-04-26 09:23:58 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 898 bytes |
コンパイル時間 | 83 ms |
コンパイル使用メモリ | 5,120 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-23 17:40:51 |
合計ジャッジ時間 | 975 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
local str = io.read() local n = #str local sstr = "" local function parse(a) local sum = 0 local flg = 1 if(a:sub(n, n) == "+" or a:sub(n, n) == "-") then return false, 0 end if(a:sub(1, 1) == "+" or a:sub(1, 1) == "-") then return false, 0 end local pos = 1 local va = 0 while(pos ~= nil) do st, ed = a:find("%d+", pos) if(st == nil) then pos = nil else va = tonumber(a:sub(st, ed)) sum = sum + flg * va if(ed == n) then pos = nil else if(a:sub(ed + 1, ed + 1) == "+") then flg = 1 else flg = -1 end pos = ed + 2 end end end return true, sum end local xma = nil for ofst = 0, n - 1 do if(0 < ofst) then sstr = str:sub(ofst + 1, n) .. str:sub(1, ofst) else sstr = str end local ret1, ret2 = parse(sstr) if(ret1) then if(xma == nil) then xma = ret2 else xma = math.max(xma, ret2) end end end print(xma)