https://coderun.yandex.ru/problem/square/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().toLong()
    val m = reader.readLine().toLong()
    val t = reader.readLine().toLong()

    var left = 0L
    var right = minOf(n, m) / 2

    while (left < right) {
        val mid = (left + right + 1) / 2
        val borderTiles = 2 * mid * (n + m - 2 * mid)
        if (borderTiles <= t) left = mid else right = mid - 1
    }

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