結果
問題 |
No.3037 トグルトグルトグル!
|
ユーザー |
![]() |
提出日時 | 2025-06-12 18:27:28 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,516 bytes |
コンパイル時間 | 147 ms |
コンパイル使用メモリ | 82,764 KB |
実行使用メモリ | 844,144 KB |
最終ジャッジ日時 | 2025-06-12 18:27:37 |
合計ジャッジ時間 | 2,454 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 3 |
other | RE * 7 MLE * 1 -- * 5 |
ソースコード
# Define mod using allowed characters ten = sum([True for _ in 'aaaaaaaaaa']) nine = sum([True for _ in 'aaaaaaaaa']) seven = sum([True for _ in 'aaaaaaa']) mod = pow(ten, nine).__add__(seven) # Basic numerical values zero = sum([]) one = sum([True]) two = one.__add__(one) # Initial matrix for Lucas sequence initial_matrix = [ [one, one], [one, zero] ] # Vector [L(1), L(0)] = [1, 2] vec = [one, two.__add__(zero)] def multiply(a, b, mod_val): c = [[zero]*two for _ in (zero, one)] for i in (zero, one): for j in (zero, one): term1 = a[i][zero].__mul__(b[zero][j]) term2 = a[i][one].__mul__(b[one][j]) total = term1.__add__(term2) c[i][j] = total.__mod__(mod_val) return c def matrix_pow(mat, power, mod_val): result = [[one if i == j else zero for j in (zero, one)] for i in (zero, one)] current = power while current > zero: if current.__mod__(two).__eq__(one): result = multiply(result, mat, mod_val) mat = multiply(mat, mat, mod_val) current = current.__floordiv__(two) return result T = int(input()) for _ in (zero,)*T: Ni = int(input()) if Ni == one: print(one.__mod__(mod)) else: power = Ni.__sub__(one) mat = matrix_pow(initial_matrix, power, mod) term1 = mat[zero][zero].__mul__(vec[zero]) term2 = mat[zero][one].__mul__(vec[one]) total = term1.__add__(term2) ans = total.__mod__(mod) print(ans)