https://coderun.yandex.ru/problem/trading-ya-intern/description Легкая

Решение

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

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))

    // Читаем N и M
    val (n, m) = reader.readLine().split(" ").map { it.toInt() }

    // Читаем цены продавцов
    val a = reader.readLine().split(" ").map { it.toLong() }.sorted()

    // Читаем цены покупателей
    val b = reader.readLine().split(" ").map { it.toLong() }.sortedDescending()

    // Вычисляем максимальную прибыль
    var profit = 0L // Используем Long, так как цены до 10^9
    var i = 0 // Индекс для продавцов
    var j = 0 // Индекс для покупателей

    while (i < n && j < m) {
        if (a[i] < b[j]) { // Если сделка выгодна
            profit += b[j] - a[i]
            i++
            j++
        } else {
            break // Если текущая цена покупки больше или равна цене продажи, дальше нет смысла
        }
    }

    // Выводим результат
    writer.write(profit.toString())
    writer.newLine()

    reader.close()
    writer.close()
}