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

Решение

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

private fun pyramid(blocks: List<Pair<Long, Long>>): Long {
    val map = HashMap<Long, Long>()
    blocks.forEach { block ->
        if ((map[block.first] ?: 0) < block.second) {
            map[block.first] = block.second
        }
    }
    return map.map { it.value }.sum()
}

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

    val count = reader.readLine().toInt()
    val blocks = List(count) {
        val (a, b) = reader.readLine().trim().split(" ").map { it.toLong() }
        a to b
    }

    val res = pyramid(blocks)
    writer.write(res.toString())
    writer.newLine()
    reader.close()
    writer.close()
}