結果
問題 | No.3036 Restricted Lucas (Easy) |
ユーザー | fine |
提出日時 | 2018-04-01 22:57:59 |
言語 | Ruby (3.3.0) |
結果 |
AC
|
実行時間 | 678 ms / 2,000 ms |
コード長 | 1,186 bytes |
コンパイル時間 | 212 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 12,928 KB |
最終ジャッジ日時 | 2024-06-26 06:04:43 |
合計ジャッジ時間 | 4,369 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 110 ms
12,288 KB |
testcase_01 | AC | 131 ms
12,672 KB |
testcase_02 | AC | 673 ms
12,672 KB |
testcase_03 | AC | 678 ms
12,928 KB |
testcase_04 | AC | 653 ms
12,544 KB |
testcase_05 | AC | 657 ms
12,544 KB |
testcase_06 | AC | 667 ms
12,928 KB |
コンパイルメッセージ
Syntax OK
ソースコード
@zero = [].size @one = :a.size @two = :aa.size @three = :aaa.size @seven = :aaaaaaa.size @nine = :aaaaaaaaa.size @ten = :aaaaaaaaaa.size @plus = :aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.size.chr @mul = :aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.size.chr @mod = eval(@ten.to_s + @mul + @mul + @nine.to_s + @plus + @seven.to_s) @div = :aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.size.chr def matmul(a, b) c = [[@zero, @zero], [@zero, @zero]] a.size.times do |i| b.size.times do |j| b[@zero].size.times do |k| c[i][j] = eval(a[i][k].to_s + @mul + b[k][j].to_s + @plus + c[i][j].to_s) c[i][j] = eval(c[i][j].to_s + @div + @mod.to_s) end end end return c end def matpow(a, n) res = [[@one, @zero], [@zero, @one]] while n > @zero if (n & @one) > @zero res = matmul(res, a) end a = matmul(a, a) n >>= @one end return res end a = [[@zero, @one], [@one, @one]] t = gets.to_i t.times do n = gets.to_i b = matpow(a, n) ans = b[@zero][@zero] + b[@zero][@zero] + b[@zero][@one] ans = eval(ans.to_s + @div + @mod.to_s) p ans end