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: Wrong Answer)


using System;
using System.Collections.Generic;
using System.Collections;

public class Sample4{

	public static void Main(){

		string line;
		List <string> stringList = new List<string> ();

		do {

			line = Console.ReadLine ();

			if (line == null || !canDo(line)){
				break;
			}
			stringList.Add (line);

		} while (line != null);


		foreach (var s in stringList) {

			string[] tempStr = s.Split (' ');

			double x = getX (int.Parse (tempStr [0]),
				int.Parse (tempStr [1]),
				int.Parse (tempStr [2]),
				int.Parse (tempStr [3]),
				int.Parse (tempStr [4]),
				int.Parse (tempStr [5]));

			double y = getY (int.Parse(tempStr[0]),
				int.Parse(tempStr[1]),
				int.Parse(tempStr[2]),
				x);

			Console.WriteLine ("{0:f3} {1:f3}",x,y);
		}

	}

	public static double getX(int a, int b, int c, int d, int e, int f){

		double x = (c*e - b*f)/(a*e - d*b);


		return Math.Round(x, 3, MidpointRounding.AwayFromZero);;
	}

	public static double getY (int a, int b, int c, double x){


		double y = (c - a * x) / b;
		return Math.Round(y, 3, MidpointRounding.AwayFromZero);;
	}

	public static bool canDo (string line){

		string[] tempStr = line.Split (' ');

			foreach (var t in tempStr) {

			if (int.Parse (t) < -1000 || int.Parse (t) > 1000) {
					return false;
				}

			}
		return true;
	}
}