結果
| 問題 |
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
scaler