세 개의 변수 x1, x2, x3에 대한 일차 방정식 세 개가 있다. 계수 aij와 상수 bi가 주어지면 연립방정식은 다음과 같이 나타낼 수 있다.
⎩⎨⎧a11x1+a12x2+a13x3=b1a21x1+a22x2+a23x3=b2a31x1+a32x2+a33x3=b3
행렬과 벡터를 이용하면 Ax=b로 쓸 수 있으며, 여기서
Ax=b,A=a11a21a31a12a22a32a13a23a33,b=b1b2b3,x=x1x2x3
크래머 공식을 이용하면 각 해를 두 행렬식(determinant)의 비로 구할 수 있다.
xi=detAdetAi
여기서 Ai는 행렬 A의 i번째 열을 벡터 b로 바꾼 행렬이다. 3×3 행렬의 행렬식은 다음과 같이 계산한다.
deta11a21a31a12a22a32a13a23a33=a11(a22a33−a23a32)−a12(a21a33−a23a31)+a13(a21a32−a22a31)
크래머 공식은 detA=0일 때에만 해를 구할 수 있다. detA=0이면 해가 유일하고, 그렇지 않으면 해가 없거나 무수히 많다. (방정식의 개수가 많아지면 행렬식 계산에 시간이 오래 걸려 다른 방법이 더 효율적이지만, 이 문제에서는 크래머 공식을 사용한다.)
세 변수에 대한 일차 방정식 세 개가 주어질 때, 크래머 공식으로 해를 구하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어진다. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 이어서 각 테스트 케이스가 다음 순서에 따라 세 줄에 걸쳐 주어진다.
a11a21a31a12a22a32a13a23a33b1b2b3
모든 수는 −1000 이상 1000 이하의 정수이며, 공백 한 칸으로 구분된다.
각 테스트 케이스마다 두 줄을 출력한다.
첫째 줄에는 행렬 A1, A2, A3, A의 행렬식을 순서대로 출력한다.
둘째 줄에는 유일한 해가 존재하지 않으면 No unique solution을 출력하고, 유일한 해가 존재하면 Unique solution: 뒤에 x1, x2, x3의 값을 소수점 셋째 자리까지 출력한다.
해 xi가 −0.0005<xi<0.0005를 만족하면 -0.000 대신 0.000을 출력한다.
연속한 두 테스트 케이스 사이에는 빈 줄을 하나 출력한다.