結果
| 問題 |
No.906 Y字グラフ
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2020-04-18 11:41:52 |
| 言語 | Lua (LuaJit 2.1.1734355927) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 829 bytes |
| コンパイル時間 | 290 ms |
| コンパイル使用メモリ | 6,948 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-03 23:20:13 |
| 合計ジャッジ時間 | 1,354 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 28 |
ソースコード
local mod = 1000000007LL
local function badd(x, y) return (x + y) % mod end
local function bmul(x, y) return (x * y) % mod end
local function bsub(x, y)
return x < y and x - y + mod or x - y
end
local function lltonumber(str)
local ret = 0LL
for i = 1, #str do
ret = ret * 10LL + str:sub(i, i):byte() - 48
end
return ret
end
local sn = io.read()
local n = lltonumber(sn)
n = n - 4LL
local allsame = n % 3LL == 0LL and 1LL or 0LL
local onediff = 1LL + (n / 2LL)
if n % 3LL == 0LL then
onediff = onediff - 1LL
end
local alldiff = bmul(500000004LL, bmul((n + 2LL) % mod, (n + 1LL) % mod))
alldiff = bsub(alldiff, allsame)
alldiff = bsub(alldiff, bmul(3LL, onediff))
alldiff = bmul(166666668LL, alldiff) -- 1/6
local ret = (allsame + onediff + alldiff) % mod
local retstr = tostring(ret):gsub("LL", "")
print(retstr)