https://coderun.yandex.ru/problem/very-easy-problem/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, x, y) = reader.readLine().split(" ").map(String::toInt)
    val minTime = minOf(x, y)
    var left = 0L
    var right = (n - 1).toLong() * minTime

    while (left < right) {
        val mid = (left + right) / 2
        val copies = mid / x + mid / y
        if (copies >= (n - 1)) right = mid else left = mid + 1
    }

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