Решение
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()
}