結果
問題 | No.3037 Restricted Lucas (Hard) |
ユーザー | fine |
提出日時 | 2018-04-01 23:07:08 |
言語 | Ruby (3.3.0) |
結果 |
AC
|
実行時間 | 149 ms / 2,000 ms |
コード長 | 1,659 bytes |
コンパイル時間 | 131 ms |
コンパイル使用メモリ | 7,680 KB |
実行使用メモリ | 13,184 KB |
最終ジャッジ日時 | 2024-06-26 06:05:29 |
合計ジャッジ時間 | 1,751 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 100 ms
12,416 KB |
testcase_01 | AC | 129 ms
13,184 KB |
testcase_02 | AC | 149 ms
13,184 KB |
testcase_03 | AC | 149 ms
13,056 KB |
testcase_04 | AC | 147 ms
13,056 KB |
testcase_05 | AC | 148 ms
13,056 KB |
testcase_06 | AC | 147 ms
13,056 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 tmp = @ten.to_s tmp << @mul tmp << @mul tmp << @nine.to_s tmp << @plus tmp << @seven.to_s @mod = eval(tmp) @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| hoge = String.new() hoge << a[i][k].to_s hoge << @mul hoge << b[k][j].to_s hoge << @plus hoge << c[i][j].to_s c[i][j] = eval(hoge) hoge = String.new() hoge << c[i][j].to_s hoge << @div hoge << @mod.to_s c[i][j] = eval(hoge) 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) hoge = String.new() hoge << b[@zero][@zero].to_s hoge << @plus hoge << b[@zero][@zero].to_s hoge << @plus hoge << b[@zero][@one].to_s ans = eval(hoge) hoge = ans.to_s hoge << @div hoge << @mod.to_s ans = eval(hoge) p ans end