結果
問題 | No.2989 Fibonacci Prize |
ユーザー | 👑 rin204 |
提出日時 | 2024-12-14 12:54:57 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 185 ms / 2,000 ms |
コード長 | 1,245 bytes |
コンパイル時間 | 184 ms |
コンパイル使用メモリ | 82,144 KB |
実行使用メモリ | 209,148 KB |
最終ジャッジ日時 | 2024-12-14 12:55:06 |
合計ジャッジ時間 | 8,081 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 41 ms
53,016 KB |
testcase_01 | AC | 42 ms
53,284 KB |
testcase_02 | AC | 73 ms
82,684 KB |
testcase_03 | AC | 37 ms
52,708 KB |
testcase_04 | AC | 37 ms
52,760 KB |
testcase_05 | AC | 38 ms
52,584 KB |
testcase_06 | AC | 38 ms
53,496 KB |
testcase_07 | AC | 37 ms
53,440 KB |
testcase_08 | AC | 39 ms
52,672 KB |
testcase_09 | AC | 38 ms
52,600 KB |
testcase_10 | AC | 37 ms
52,740 KB |
testcase_11 | AC | 38 ms
52,600 KB |
testcase_12 | AC | 37 ms
52,596 KB |
testcase_13 | AC | 38 ms
53,336 KB |
testcase_14 | AC | 38 ms
53,940 KB |
testcase_15 | AC | 38 ms
53,688 KB |
testcase_16 | AC | 41 ms
52,408 KB |
testcase_17 | AC | 38 ms
52,884 KB |
testcase_18 | AC | 37 ms
52,948 KB |
testcase_19 | AC | 38 ms
53,940 KB |
testcase_20 | AC | 39 ms
52,588 KB |
testcase_21 | AC | 38 ms
52,956 KB |
testcase_22 | AC | 38 ms
53,632 KB |
testcase_23 | AC | 49 ms
62,100 KB |
testcase_24 | AC | 68 ms
85,592 KB |
testcase_25 | AC | 72 ms
85,600 KB |
testcase_26 | AC | 43 ms
59,884 KB |
testcase_27 | AC | 46 ms
61,352 KB |
testcase_28 | AC | 54 ms
68,376 KB |
testcase_29 | AC | 53 ms
70,240 KB |
testcase_30 | AC | 44 ms
59,120 KB |
testcase_31 | AC | 47 ms
62,876 KB |
testcase_32 | AC | 46 ms
60,468 KB |
testcase_33 | AC | 75 ms
90,288 KB |
testcase_34 | AC | 50 ms
65,580 KB |
testcase_35 | AC | 46 ms
62,124 KB |
testcase_36 | AC | 72 ms
85,648 KB |
testcase_37 | AC | 83 ms
88,704 KB |
testcase_38 | AC | 48 ms
64,532 KB |
testcase_39 | AC | 53 ms
63,324 KB |
testcase_40 | AC | 48 ms
63,472 KB |
testcase_41 | AC | 56 ms
71,232 KB |
testcase_42 | AC | 71 ms
85,152 KB |
testcase_43 | AC | 181 ms
209,148 KB |
testcase_44 | AC | 178 ms
208,140 KB |
testcase_45 | AC | 185 ms
208,928 KB |
testcase_46 | AC | 146 ms
157,652 KB |
testcase_47 | AC | 144 ms
157,984 KB |
testcase_48 | AC | 167 ms
157,036 KB |
testcase_49 | AC | 146 ms
158,100 KB |
testcase_50 | AC | 150 ms
157,896 KB |
testcase_51 | AC | 161 ms
157,060 KB |
testcase_52 | AC | 148 ms
157,728 KB |
testcase_53 | AC | 146 ms
157,056 KB |
testcase_54 | AC | 151 ms
158,012 KB |
testcase_55 | AC | 133 ms
146,040 KB |
testcase_56 | AC | 151 ms
147,052 KB |
testcase_57 | AC | 142 ms
146,012 KB |
testcase_58 | AC | 140 ms
156,156 KB |
testcase_59 | AC | 145 ms
157,200 KB |
testcase_60 | AC | 145 ms
156,020 KB |
testcase_61 | AC | 135 ms
146,080 KB |
testcase_62 | AC | 130 ms
145,936 KB |
testcase_63 | AC | 129 ms
145,128 KB |
testcase_64 | AC | 37 ms
53,140 KB |
testcase_65 | AC | 43 ms
53,540 KB |
testcase_66 | AC | 38 ms
54,128 KB |
testcase_67 | AC | 37 ms
53,712 KB |
testcase_68 | AC | 37 ms
53,692 KB |
testcase_69 | AC | 38 ms
52,312 KB |
testcase_70 | AC | 38 ms
54,052 KB |
testcase_71 | AC | 37 ms
53,088 KB |
testcase_72 | AC | 37 ms
53,076 KB |
testcase_73 | AC | 38 ms
53,620 KB |
testcase_74 | AC | 38 ms
53,932 KB |
testcase_75 | AC | 38 ms
52,832 KB |
testcase_76 | AC | 38 ms
53,436 KB |
testcase_77 | AC | 39 ms
52,716 KB |
testcase_78 | AC | 38 ms
52,528 KB |
testcase_79 | AC | 37 ms
53,136 KB |
ソースコード
def solve(n, m): if n == 1 and m == 1: return 2 if m <= 10: F = [1, 1] while len(F) < m: F.append(F[-1] + F[-2]) ans = 0 for l in range(m): tot = 0 for r in range(l, m): tot += F[r] if tot % n == 0 and tot <= F[m - 1]: ans += 1 return ans if n == 1: ans = m * (m + 1) // 2 ans -= m - 1 if m >= 3: ans -= m - 3 return ans a = 0 b = 1 cnt = [0] * n tot = 0 lst = [] F = [] while 1: tot = (tot + a) % n lst.append(tot) F.append(a) cnt[tot] += 1 a, b = b, (a + b) % n if a == 0 and b == 1: break C = [0] * n le = len(lst) loop = (m - 1) // le for i in range(n): C[i] = cnt[i] * loop for i in range((m - 1) % le): C[lst[i]] += 1 ans = 0 for c in C: ans += c * (c - 1) // 2 a = F[m % le - 2] b = F[m % le - 1] c = F[m % le] if (a + b) % n == 0: ans += 1 if b % n == 0: ans += 1 if c % n == 0: ans += 1 return ans print(solve(*map(int, input().split())))