結果
問題 | No.8108 徐々におかしくなる数学クイズ |
ユーザー | scaler |
提出日時 | 2024-08-31 19:34:01 |
言語 | Scala(Beta) (3.6.2) |
結果 |
AC
|
実行時間 | 892 ms / 2,000 ms |
コード長 | 490 bytes |
コンパイル時間 | 11,224 ms |
コンパイル使用メモリ | 262,292 KB |
実行使用メモリ | 64,300 KB |
最終ジャッジ日時 | 2024-08-31 19:34:23 |
合計ジャッジ時間 | 20,959 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
ソースコード
import scala.io.StdIn.readLine @main def yuki3108(): Unit = val n = readLine.toLong println(fib(n)) def fib(n: Long, mod: Long = 998244353L): Long = def fastFibo(i: Long): (Long, Long) = i match { case 0 => (0, 1) case 1 => (1, 1) case _ => val (a, b) = fastFibo(i / 2) if i % 2 == 0 then (a * (b * 2 + mod - a) % mod, (a * a + b * b) % mod) else ((a * a + b * b) % mod, (b * (2 * a + b)) % mod) } val (x, _) = fastFibo(n) x % mod