結果
| 問題 |
No.533 Mysterious Stairs
|
| コンテスト | |
| ユーザー |
rutilicus
|
| 提出日時 | 2020-09-13 08:48:08 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
AC
|
| 実行時間 | 335 ms / 5,000 ms |
| コード長 | 842 bytes |
| コンパイル時間 | 11,954 ms |
| コンパイル使用メモリ | 436,204 KB |
| 実行使用メモリ | 74,424 KB |
| 最終ジャッジ日時 | 2024-06-11 15:49:14 |
| 合計ジャッジ時間 | 20,819 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 28 |
コンパイルメッセージ
Main.kt:40:13: warning: 'appendln(Long): kotlin.text.StringBuilder /* = java.lang.StringBuilder */' is deprecated. Use appendLine instead. Note that the new method always appends the line feed character '\n' regardless of the system line separator.
builder.appendln((dp1[n - 1] + dp2[n - 1] + dp3[n - 1]) % mod)
^
ソースコード
import kotlin.math.sqrt
fun main() {
val builder = StringBuilder()
val mod = 1000000007L
val n = readInputLine().toInt()
val dp1 = LongArray(n)
val dp2 = LongArray(n)
val dp3 = LongArray(n)
dp1[0] = 1
if (n >= 2) {
dp2[1] = 1
}
if (n >= 3) {
dp3[2] = 1
}
for (i in 1 until n) {
dp1[i] += dp2[i - 1]
dp1[i] += dp3[i - 1]
dp1[i] %= mod
if (i >= 2) {
dp2[i] += dp1[i - 2]
dp2[i] += dp3[i - 2]
dp2[i] %= mod
}
if (i >= 3) {
dp3[i] += dp1[i - 3]
dp3[i] += dp2[i - 3]
dp3[i] %= mod
}
}
builder.appendln((dp1[n - 1] + dp2[n - 1] + dp3[n - 1]) % mod)
print(builder.toString())
}
fun readInputLine(): String {
return readLine()!!
}
rutilicus