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

Условие

На клетчатой плоскости закрашено K клеток. Требуется найти минимальный по площади прямоугольник, со сторонами, параллельными линиям сетки, покрывающий все закрашенные клетки.

Примеры

Ввод: 3 1 1 1 10 5 5 Вывод: 1 1 5 10

Решение

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 k = reader.readLine().toInt() // Читаем количество закрашенных клеток

    var minX = Int.MAX_VALUE
    var minY = Int.MAX_VALUE
    var maxX = Int.MIN_VALUE
    var maxY = Int.MIN_VALUE

    repeat(k) {
        val (x, y) = reader.readLine().split(" ").map(String::toInt)
        minX = minOf(minX, x) // Обновляем минимальные X и Y
        minY = minOf(minY, y)
        maxX = maxOf(maxX, x) // Обновляем максимальные X и Y
        maxY = maxOf(maxY, y)
    }

    writer.write("$minX $minY $maxX $maxY") // Выводим результат
    writer.newLine()

    reader.close()
    writer.close()
}