結果
問題 | No.8036 Restricted Lucas (Easy) |
ユーザー |
|
提出日時 | 2018-04-01 22:57:59 |
言語 | Ruby (3.4.1) |
結果 |
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 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 6 |
コンパイルメッセージ
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.chrdef 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)endendendreturn cenddef matpow(a, n)res = [[@one, @zero], [@zero, @one]]while n > @zeroif (n & @one) > @zerores = matmul(res, a)enda = matmul(a, a)n >>= @oneendreturn resenda = [[@zero, @one], [@one, @one]]t = gets.to_it.times don = gets.to_ib = matpow(a, n)ans = b[@zero][@zero] + b[@zero][@zero] + b[@zero][@one]ans = eval(ans.to_s + @div + @mod.to_s)p ansend