結果
問題 | No.2989 Fibonacci Prize |
ユーザー |
![]() |
提出日時 | 2024-12-14 11:23:50 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 945 bytes |
コンパイル時間 | 416 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 138,752 KB |
最終ジャッジ日時 | 2024-12-14 11:24:21 |
合計ジャッジ時間 | 7,389 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 WA * 39 |
ソースコード
N, M = map(int, input().split())def solve(N, M):if N == 1:ans = Mif M >= 3:ans = (M - 2) * (M - 3) // 2 + 3return ansif M <= 2:return 0fib = [0, 1]for i in range(2, M + 1):fib.append((fib[-1] + fib[-2]) % N)if fib[0] == fib[-2] and fib[1] == fib[-1]:breakfib.pop()fib.pop()Fib = fib[:]n = len(fib)R = [0 for i in range(N)]for i in range(n - 1):Fib[i + 1] = (Fib[i + 1] + Fib[i]) % Nfor r in Fib:R[r] += 1x = (M - 1) // nans = 0# R <= M - 2for i in range(N):r = R[i]R[i] *= xans += r * r * (x * (x - 1) // 2)ans += x * (r * (r - 1) // 2)for i in range(M - 1 - x * n):r = Fib[i]ans += R[r]R[r] += 1fib.append(0)fib.append(1)# fib_M = fib_(M - 1) + fib_(M - 2)if fib[M - x * n + 1] % N == 0:ans += 2# fib_(M - 1)if fib[M - x * n] % N == 0:ans += 1return ansprint(solve(N, M))