https://coderun.yandex.ru/problem/median-union/description Легкая

Решение

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

fun mergeSorted(a: List<Int>, b: List<Int>): List<Int> {
    val result = ArrayList<Int>(a.size + b.size)
    var i = 0
    var j = 0

    while (i < a.size && j < b.size) {
        if (a[i] < b[j]) {
            result.add(a[i++])
        } else {
            result.add(b[j++])
        }
    }
    while (i < a.size) result.add(a[i++])
    while (j < b.size) result.add(b[j++])

    return result
}

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))
    val (n, l) = reader.readLine().trim().split(" ").map(String::toInt)
    val sequences = Array(n) { reader.readLine().trim().split(" ").filter { it.isNotEmpty() }.map(String::toInt) }

    for (i in 0 until n - 1) {
        for (j in i + 1 until n) {
            val merged = mergeSorted(sequences[i], sequences[j])
            writer.write(merged[l - 1].toString())
            writer.newLine()
        }
    }

    writer.flush()
    writer.close()
}