結果
問題 | No.238 Mr. K's Another Gift |
ユーザー |
👑 |
提出日時 | 2020-04-23 23:16:00 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,743 bytes |
コンパイル時間 | 57 ms |
コンパイル使用メモリ | 5,120 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-14 02:43:28 |
合計ジャッジ時間 | 1,847 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
local s = io.read() if #s == 1 then print(s .. s) os.exit() elseif #s == 2 then print(s .. s:sub(1, 1)) os.exit() end local n = #s local hn = math.floor(n / 2) local f1 = s:sub(1, hn) local f2 = s:sub(n - hn + 1, n):reverse() if n % 2 == 1 then local ngpos = false for i = 1, hn do if f1:sub(i, i) ~= f2:sub(i, i) then ngpos = i break end end if not ngpos then print(f1 .. string.rep(s:sub(hn + 1, hn + 1), 2) .. f1:reverse()) os.exit() end local mid = s:sub(hn + 1, hn + 1) local v = mid == f2:sub(hn, hn) for i = ngpos + 1, hn do if f1:sub(i, i) ~= f2:sub(i - 1, i - 1) then v = false break end end if v then print(f1 .. mid .. f2:sub(ngpos, hn):reverse() .. f1:sub(1, ngpos):reverse()) os.exit() end v = mid == f1:sub(hn, hn) for i = ngpos + 1, hn do if f2:sub(i, i) ~= f1:sub(i - 1, i - 1) then v = false break end end if v then print(f2 .. mid .. f1:sub(ngpos, hn):reverse() .. f2:sub(1, ngpos):reverse()) else print("NA") end else local ngpos = false for i = 1, hn do if f1:sub(i, i) ~= f2:sub(i, i) then ngpos = i break end end if not ngpos then print(f1 .. "a" .. f1:reverse()) os.exit() end local v = true for i = ngpos + 1, hn do if f1:sub(i, i) ~= f2:sub(i - 1, i - 1) then v = false break end end if v then print(f1 .. f2:sub(ngpos, hn):reverse() .. f1:sub(1, ngpos):reverse()) os.exit() end v = true for i = ngpos + 1, hn do if f2:sub(i, i) ~= f1:sub(i - 1, i - 1) then v = false break end end if v then print(f2 .. f1:sub(ngpos, hn):reverse() .. f2:sub(1, ngpos):reverse()) else print("NA") end end