Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main(args: Array<String>) {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
// Читаем размеры матрицы
val (w, h) = reader.readLine().split(" ").map { it.toInt() }
// Массивы для сумм по строкам и столбцам
val rowSums = LongArray(h) { 0L }
val colSums = LongArray(w) { 0L }
// Вычисляем интенсивность для каждого пикселя аналитически
for (row in 0 until h) {
for (col in 0 until w) {
// Количество прямоугольников, включающих пиксель (row, col)
val count = (row + 1).toLong() * (h - row).toLong() * (col + 1).toLong() * (w - col).toLong()
rowSums[row] += count
colSums[col] += count
}
}
// Выводим суммы по строкам
writer.write(rowSums.joinToString(" "))
writer.newLine()
// Выводим суммы по столбцам
writer.write(colSums.joinToString(" "))
reader.close()
writer.close()
}