https://coderun.yandex.ru/problem/traffic-lanes/description Средняя

Решение

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun traffic(m: Int, n: Int): String {
    val dp = Array(m) { LongArray(n) { 1L } }

    for (i in 1 until m) {
        for (j in 1 until n) {
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + dp[i - 1][j - 1]
        }
    }

    return dp[m - 1][n - 1].toString()
}

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))
    val (m, n) = reader.readLine().split(" ").map { it.toInt() }
    writer.write(traffic(m, n))
    writer.newLine()
    writer.flush()
    writer.close()
}