結果
問題 | No.1595 The Final Digit |
ユーザー |
👑 |
提出日時 | 2021-07-22 16:46:12 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 952 bytes |
コンパイル時間 | 55 ms |
コンパイル使用メモリ | 6,940 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-17 14:56:44 |
合計ジャッジ時間 | 821 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
local mfl, mce = math.floor, math.ceil local ffi = require("ffi") local C = ffi.C ffi.cdef[[ long long atoll(const char*); ]] local function lltonumber(str) return C.atoll(str) end local p, q, r, k = io.read():match("(%d+) (%d+) (%d+) (%d+)") p, q, r = tonumber(p), tonumber(q), tonumber(r) k = lltonumber(k) local t = {{}} for i = 1, 1000 do local v = i - 1 local p1 = v % 10 v = mfl(v / 10) local p2 = v % 10 local p3 = mfl(v / 10) local d = (p1 + p2 + p3) % 10 local dst = d * 100 + p3 * 10 + p2 + 1 t[1][i] = dst end for i = 2, 100 do t[i] = {} for j = 1, 1000 do t[i][j] = t[i - 1][ t[i - 1][j] ] end end p = p % 10 q = q % 10 r = r % 10 if k == 1LL then print(p) elseif k == 2LL then print(q) elseif k == 3LL then print(r) else k = k - 1LL local cur = p + q * 10 + r * 100 + 1 for i = 1, 100 do if k % 2LL == 1LL then cur = t[i][cur] end k = k / 2LL end print((cur + 9) % 10) end