https://coderun.yandex.ru/problem/life-in-colours Средняя

Решение

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

fun main() {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val header = StringTokenizer(reader.readLine())
    val k = header.nextToken().toInt()
    val t = header.nextToken().toLong()

    val intervals = ArrayList<Pair<Long, Long>>(k)
    repeat(k) {
        val tok = StringTokenizer(reader.readLine())
        val start = tok.nextToken().toLong()
        val end = tok.nextToken().toLong()
        val brightness = tok.nextToken().toLong()

        val requiredSpan = end - start + 1
        if (brightness >= requiredSpan) {
            val L = end
            val R = minOf(start + brightness - 1, t)
            intervals.add(Pair(L, R))
        }
    }
    reader.close()

    intervals.sortWith(compareBy<Pair<Long, Long>>({ it.first }, { -it.second }))

    var coveredUpTo = 0L
    for ((L, R) in intervals) {
        if (L > coveredUpTo + 1) break
        if (R > coveredUpTo) {
            coveredUpTo = R
            if (coveredUpTo >= t) break
        }
    }

    val writer = BufferedWriter(OutputStreamWriter(System.out))
    writer.write(if (coveredUpTo >= t) "Yes" else "No")
    writer.flush()
    writer.close()
}