結果
問題 | No.1101 鼻水 |
ユーザー |
👑 |
提出日時 | 2022-04-29 17:02:41 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,010 bytes |
コンパイル時間 | 64 ms |
コンパイル使用メモリ | 5,376 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-28 22:52:45 |
合計ジャッジ時間 | 918 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
local mfl, mce = math.floor, math.ceillocal function bezout_eq(a, b)if b == 0 thenreturn 1, 0endlocal y, x = bezout_eq(b, a % b)y = y - mfl(a / b) * xreturn x, yendlocal function getgcd(x, y)while 0 < x dox, y = y % x, xendreturn yendlocal v, t, p = io.read("*n", "*n", "*n")-- v = 1LL * v-- t = 1LL * t-- p = 1LL * pif false and getgcd(v, t - 1) == 1 then-- v * b + (t - 1) * a = 1local b, a = bezout_eq(v, t - 1)while b < 0 or 0 <= a dob = b + t - 1a = a - venda = -a-- (t - 1) * a + 1 = v * belselocal lim = 1LL * v * (p + 1LL)local min = 1LLlocal max = lim * 3LLwhile 1LL < max - min dolocal mid = (min + max) / 2LLlocal red = (mid - 1LL) / (t * 1LL)if mid - red <= lim thenmin = midelsemax = midendendlocal ans = tostring(1LL + min):gsub("LL", "")print(ans)end--[[1, 0, t, t-1, 2t-1, 2t-2, 3t-2, 3t-3(T-1)k + 1 === 0 mod V(T-1)a + 1 = VbVb - (T-1)a = 1]]