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()
}