結果
| 問題 | 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