Problem:
Simultaneous Equation

Write a program which solve a simultaneous equation:

ax + by = c

dx + ey = f

The program should print x and y for given a, b, c, d, e and f (-1,000 ≤ a, b, c, d, e, f ≤ 1,000). You can suppose that given equation has a unique solution.

Input

The input consists of several data sets, 1 line for each data set. In a data set, there will be a, b, c, d, e, f separated by a single space. The input terminates with EOF.

Output

For each data set, print x and y separated by a single space. Print the solution to three places of decimals. Round off the solution to three decimal places.

Sample Input 1

1 2 3 4 5 6
2 -1 -2 -1 -1 -5

Output for the Sample Input 1

-1.000 2.000
1.000 4.000

Sample Input 2

2 -1 -3 1 -1 -3
2 -1 -3 -9 9 27

Output for the Sample Input 2

0.000 3.000
0.000 3.000

Solution in C# (judge verdict: Accepted)

using System;

namespace _0004 {

	public static class Program {

		public static void Main() {
			string input;
			while (!string.IsNullOrEmpty(input = Console.ReadLine())) {
				var splitStr = input.Split(' ');
				var a = int.Parse(splitStr[0]);
				var b = int.Parse(splitStr[1]);
				var c = int.Parse(splitStr[2]);
				var d = int.Parse(splitStr[3]);
				var e = int.Parse(splitStr[4]);
				var f = int.Parse(splitStr[5]);

				if (a != 0 && d != 0) {
					var adLcm = LCM(a, d);
					var beDiff = b * (adLcm / a) - e * (adLcm / d);
					var cfDiff = c * (adLcm / a) - f * (adLcm / d);

					var y = ((double) cfDiff) / beDiff;
					var x = (c - (b * y)) / a;
					Console.WriteLine("{0:f3} {1:f3}", x, y);
				} else if (a == 0) {
					var y = ((double) c) / b;
					var x = (f - (e * y)) / d;
					Console.WriteLine("{0:f3} {1:f3}", x, y);
				} else {
					var y = ((double) f) / e;
					var x = (c - (b * y)) / a;
					Console.WriteLine("{0:f3} {1:f3}", x, y);
				}
			}
		}

		private static int LCM(int m, int n) {
			return m * n / GCD(m, n);
		}

		private static int GCD(int m, int n) {
			m = Math.Abs(m);
			n = Math.Abs(n);

			if (m < n) {
				return GCD(n, m);
			}
			return n == 0 ? m : GCD(n, m % n);
		}

	}

}