https://coderun.yandex.ru/selections/quickstart/problems/quadratic-equation/description Легкая

Решение

import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.BufferedWriter
import java.io.OutputStreamWriter
import kotlin.math.sqrt

fun solveQuadratic(a: Double, b: Double, c: Double): Pair<Int, List<Double>> {
    val d = b * b - 4 * a * c
    
    // Если дискриминант отрицательный, корней нет
    if (d < 0) return 0 to emptyList()
    
    // Вычисляем корни
    val sqrtD = sqrt(d)
    val x1 = (-b + sqrtD) / (2 * a)
    val x2 = (-b - sqrtD) / (2 * a)
    
    // Если корни равны, возвращаем один корень
    if (d == 0.0) return 1 to listOf(x1)
    
    // Возвращаем два корня в порядке возрастания
    return 2 to listOf(minOf(x1, x2), maxOf(x1, x2))
}

fun main(args: Array<String>) {
    val reader = BufferedReader(InputStreamReader(System.`in`))
    val writer = BufferedWriter(OutputStreamWriter(System.out))

    // Читаем строку ввода и проверяем на null
    val input = reader.readLine()
    if (input.isNullOrBlank()) {
        writer.write("0") // Если строка пустая или null, считаем, что корней нет
        writer.newLine()
        reader.close()
        writer.close()
        return
    }

    // Разделяем строку на коэффициенты и преобразуем в Double
    val (a, b, c) = input.trim().split(" ").map { it.toDouble() }
    
    // Решаем уравнение
    val (count, roots) = solveQuadratic(a, b, c)
    
    // Выводим количество корней
    writer.write("$count")
    writer.newLine()
    
    // Выводим корни с точностью до 6 знаков после запятой
    if (count > 0) {
        writer.write(roots.joinToString(" ") { String.format("%.6f", it) })
    }
    writer.newLine()
    
    reader.close()
    writer.close()
}