#include <iostream>
using namespace std;
int main()
{
int i,j;
float a[3][3];
float b[3][3];
float det;
for(i=0; i<3 ; i++)
{
for(j=0; j<3; j++)
cin>>a[i][j]; //9개의 숫자를 [3][3]배열에 입력
}
for(i=0; i<3 ; i++)
{
for(j=0; j<3; j++)
cin>>b[i][j]; //9개의 숫자를 [3][3]배열에 입력
}
cout<<"---A---"<<endl;
for(i=0; i<3 ; i++)
{
cout<<"[ ";
for(j=0; j<3; j++)
cout<<a[i][j]<<" ";
cout<<"]"<<endl;
}
cout<<"---B---"<<endl;
for(i=0; i<3 ; i++)
{
cout<<"[ ";
for(j=0; j<3; j++)
cout<<b[i][j]<<" ";
cout<<"]"<<endl;
}
cout<<"---A + B---"<<endl;
for(i=0; i<3 ; i++)
{
cout<<"[ ";
for(j=0; j<3; j++)
cout<<a[i][j]+b[i][j]<<" ";
cout<<"]"<<endl;
}
cout<<"---A - B---"<<endl;
for(i=0; i<3 ; i++)
{
cout<<"[ ";
for(j=0; j<3; j++)
cout<<a[i][j]-b[i][j]<<" ";
cout<<"]"<<endl;
}
cout<<"---A * B---"<<endl;
for(i=0; i<3 ; i++)
{
cout<<"[ ";
for(j=0; j<3; j++)
cout<<a[i][j]*b[i][j]<<" ";
cout<<"]"<<endl;
}
det = (a[0][0] * (a[1][1]*a[2][2] - a[1][2] * a[2][1])) - (a[0][1] * (a[1][0]*a[2][2] - a[1][2] * a[2][0])) + (a[0][2] * (a[1][0]*a[2][1] - a[1][1] * a[2][0]));
if(det != 0)
{
a[0][0] = (a[0][0] * (a[1][1]*a[2][2] - a[1][2]*a[2][1])) * 1/det;
a[0][1] = (- a[0][1] * (a[1][0]*a[2][2] - a[1][2]*a[2][0])) * 1/det;
a[0][2] = ( a[0][2] * (a[1][0]*a[2][1] - a[1][1]*a[2][0])) * 1/det;
a[1][0] = (- a[1][0] * (a[0][1]*a[2][2] - a[0][2]*a[2][1])) * 1/det;
a[1][1] = ( a[1][1] * (a[0][0]*a[2][2] - a[0][2]*a[2][0])) * 1/det;
a[1][2] = (- a[1][2] * (a[0][0]*a[2][1] - a[0][1]*a[2][0])) * 1/det;
a[2][0] = ( a[2][0] * (a[0][1]*a[2][2] - a[0][2]*a[2][1])) * 1/det;
a[2][1] = (- a[2][1] * (a[0][0]*a[1][2] - a[0][2]*a[1][0])) * 1/det;
a[2][2] = ( a[2][2] * (a[0][0]*a[1][1] - a[0][1]*a[1][0])) * 1/det;
cout<<"---inverse a---"<<endl;
for(j=0; j<3 ; j++)
{
cout<<"[ ";
for(i=0; i<3; i++)
cout<<a[i][j]-b[i][j]<<" ";
cout<<"]"<<endl;
}
}
else
cout<<"Det = 0"<<endl;
return 0;
}