Advertisement
paranid5

horse

Feb 13th, 2021
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.62 KB | None | 0 0
  1. const val MOD = 1e6.toInt() + 7
  2.  
  3. fun calc(dp: Array<IntArray>, i: Int = dp.size - 1, q: Int = dp[0].size - 1) = when {
  4.     i < 0 || q < 0 || i > dp.size - 1 || q > dp[0].size - 1 -> 0
  5.     dp[i][q] != -1 -> dp[i][q]
  6.     else -> {
  7.         dp[i][q] = (calc(dp, i - 2, q - 1) +
  8.                 calc(dp, i - 2, q + 1) +
  9.                 calc(dp, i - 1, q - 2) +
  10.                 calc(dp, i + 1, q - 2)) % MOD
  11.  
  12.         dp[i][q]
  13.     }
  14. }
  15.  
  16.  
  17. fun main() = readLine()!!.split(' ').map { it.toInt() }.let { args ->
  18.     Array(args[0]) { IntArray(args[1]) { -1 } }.let { dp ->
  19.         dp[0][0] = 1
  20.         print(calc(dp))
  21.     }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement