https://coderun.yandex.ru/problem/cash-registers/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 = reader.readLine().toInt()
    val minutes = IntArray(1441)

    repeat(n) {
        val (h1, m1, h2, m2) = reader.readLine().split(" ").map(String::toInt)
        val start = h1 * 60 + m1
        val end = h2 * 60 + m2

        if (start < end) {
            minutes[start]++
            minutes[end]--
        } else {
            minutes[start]++
            minutes[1440]--
            minutes[0]++
            minutes[end]--
        }
    }

    var current = 0
    var allOpenMinutes = 0

    for (i in 0 until 1440) {
        current += minutes[i]
        if (current == n) {
            allOpenMinutes++
        }
    }

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