https://coderun.yandex.ru/problem/system-of-linear-equations-2 Средняя

Решение

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

private const val EPS = 1e-9

private fun isZero(d: Double): Boolean {
    return abs(d) < EPS
}

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

    val a = reader.readLine().toDouble()
    val b = reader.readLine().toDouble()
    val c = reader.readLine().toDouble()
    val d = reader.readLine().toDouble()
    val e = reader.readLine().toDouble()
    val f = reader.readLine().toDouble()

    val det = a * d - b * c
    val detX = e * d - b * f
    val detY = a * f - c * e

    if (!isZero(det)) {
        val x = detX / det
        val y = detY / det
        writer.write("2 $x $y\\n")
    } else {
        if (isZero(a) && isZero(b) && isZero(c) && isZero(d)) {
            if (isZero(e) && isZero(f)) {
                writer.write("5\\n")
            } else {
                writer.write("0\\n")
            }
        } else if (!isZero(detX) || !isZero(detY)) {
            writer.write("0\\n")
        } else {
            if (isZero(b) && isZero(d)) {
                val x0 = if (!isZero(a)) e / a else f / c
                writer.write("3 $x0\\n")
            } else if (isZero(a) && isZero(c)) {
                val y0 = if (!isZero(b)) e / b else f / d
                writer.write("4 $y0\\n")
            } else {
                if (!isZero(b)) {
                    val k = -a / b
                    val m = e / b
                    writer.write("1 $k $m\\n")
                } else {
                    val k = -c / d
                    val m = f / d
                    writer.write("1 $k $m\\n")
                }
            }
        }
    }

    reader.close()
    writer.flush()
    writer.close()
}