complete 11057.kt 15835.kt 20411.kt 25345.kt 28242.kt 32628.kt

This commit is contained in:
2025-07-29 06:36:46 +09:00
parent 2e957b221e
commit b4b22e9af7
6 changed files with 268 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
const val MOD = 10_007
val MEMORY = Array<IntArray>(1003) { IntArray(10) { -1 } }
fun countUprisingFrom(from: Int /*[0, 9]*/, length: Int): Int {
if (MEMORY[length][from] != -1) {
return MEMORY[length][from]
}
return if (length == 1) {
MEMORY[length][from] = 1
1
} else {
val s = (from..9).fold(0) { total, now ->
(total + countUprisingFrom(now, length - 1)) % MOD
}
MEMORY[length][from] = s
s
}
}
fun countTotalUprising(length: Int): Int {
return ((0..9).sumOf { countUprisingFrom(it, length) } % MOD)
}
fun main() {
val n = readln().toInt()
println(countTotalUprising(n))
}