https://coderun.yandex.ru/problem/sales/description Легкая

Решение

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

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))
    val sales = TreeMap<String, TreeMap<String, Long>>()

    while (true) {
        val line = reader.readLine() ?: break
        val (buyer, item, qty) = line.split(" ")
        val items = sales.getOrPut(buyer) { TreeMap() }
        items[item] = (items[item] ?: 0L) + qty.toLong()
    }

    for ((buyer, items) in sales) {
        writer.write("$buyer:\\n")
        for ((item, qty) in items) {
            writer.write("$item $qty\\n")
        }
    }

    reader.close()
    writer.flush()
    writer.close()
}