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

Решение

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

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

    val (n, m) = reader.readLine().split(" ").map(String::toInt)
    val events = mutableListOf<Pair<Int, Int>>()

    repeat(m) {
        val (b, e) = reader.readLine().split(" ").map(String::toInt)
        events.add(Pair(b, 1))
        events.add(Pair(e + 1, -1))
    }

    events.sortWith(compareBy({ it.first }, { it.second }))

    var watching = 0
    var unattended = 0
    var prevIndex = 0

    for ((pos, change) in events) {
        if (watching == 0) unattended += pos - prevIndex
        watching += change
        prevIndex = pos
    }

    if (prevIndex < n) unattended += n - prevIndex

    writer.write(unattended.toString())
    writer.newLine()
    writer.flush()
    writer.close()
}