https://coderun.yandex.ru/problem/wires/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, k) = reader.readLine().split(" ").map(String::toInt)
    val lengths = LongArray(n) { reader.readLine().toLong() }
    var left = 1L
    var right = lengths.maxOrNull() ?: 0L

    while (left <= right) {
        val mid = (left + right) / 2
        val count = lengths.sumOf { it / mid }

        if (count >= k) left = mid + 1
        else right = mid - 1
    }

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