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;
using System.Collections.Generic;
using System.Linq;

namespace P0004_SimultaneousEquation
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> lines = new List<string>();
            string readLine;

            do
            {
                readLine = Console.ReadLine();
                if (readLine != null)
                {
                    lines.Add(readLine);
                }
            }
            while (readLine != null);


            foreach (string line in lines)
            {
                List<string> coefficientsStr = line.Split(' ').ToList<string>();
                List<decimal> coefficients = new List<decimal>();

                foreach (string sideStr in coefficientsStr)
                {
                    coefficients.Add(decimal.Parse(sideStr));
                }

                decimal x, y;
                
                if(coefficients[0] == 0)
                {
                    y = coefficients[2] / coefficients[1];
                    x = (coefficients[5] - (coefficients[4] * y)) / coefficients[3];
                }
                else if (coefficients[1] == 0)
                {
                    x = coefficients[2] / coefficients[0];
                    y = (coefficients[5] - (coefficients[3] * x)) / coefficients[4];
                }
                else if (coefficients[3] == 0)
                {
                    y = coefficients[5] / coefficients[4];
                    x = (coefficients[2] - (coefficients[1] * y)) / coefficients[0];
                }
                else if (coefficients[4] == 0)
                {
                    x = coefficients[5] / coefficients[3];
                    y = (coefficients[2] - (coefficients[0] * x)) / coefficients[1];
                }
                else
                {
                    decimal left = (coefficients[1] / coefficients[0]) - (coefficients[4] / coefficients[3]);
                    decimal right = (coefficients[2] / coefficients[0]) - (coefficients[5] / coefficients[3]);

                    y = right / left;
                    x = (coefficients[2] / coefficients[0]) - ((coefficients[1] / coefficients[0]) * y);

                }


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

            }

        }
    }
}