/* LANG: C++ ID: yinguan1 PROG: ratios */ #include <fstream> using namespace std; int ratio[3][4]; int x,y,z; ifstream fin("ratios.in"); ofstream fout("ratios.out"); bool Notnone(int j) { for(int i=0; i<3; ++i) if(ratio[j][i]) return true; return false; } bool Another() { for(int i=0; i<3; ++i) for(int j=0; j<4; ++j) if(ratio[i][j]<0) return false; return true; } void input() { for(int i=0; i<3; ++i) fin>>ratio[i][3]; for(int i=0; i<3; ++i) for(int j=0; j<3; ++j) fin>>ratio[j][i]; } int alg(int a, int b) { int c,d; c=max(a,b); d=min(a,b); while(d) { int e=c; c=d; d=e%d; } return c; } void simple(int j) { int a; int sign=0; for(int i=0; i<3; ++i) if(ratio[j][i]&&!sign) { a=alg(ratio[j][i],ratio[j][3]); sign=1; } else if(ratio[j][i]) a=alg(a,ratio[j][i]); if(sign) for(int i=0; i<4; ++i) ratio[j][i]/=a; } void work() { for(int j=1; j<3; ++j) { for(int i=3; i>-1; --i) ratio[j][i]=ratio[j][i]*ratio[0][0]-ratio[0][i]*ratio[j][0]; simple(j); } for(int i=3; i>-1; --i) ratio[2][i]=ratio[2][i]*ratio[1][1]-ratio[1][i]*ratio[2][1]; simple(2); for(int j=1; j>-1; --j) {for(int i=3; i>-1; --i) ratio[j][i]=ratio[j][i]*ratio[2][2]-ratio[2][i]*ratio[j][2]; simple(j); } for(int i=3; i>-1; --i) ratio[0][i]=ratio[0][i]*ratio[1][1]-ratio[1][i]*ratio[0][1]; simple(0); x=ratio[0][0]*ratio[1][1]/alg(ratio[0][0],ratio[1][1]); x=ratio[2][2]*x/alg(x,ratio[2][2]); ratio[0][3]=x/ratio[0][0]*ratio[0][3]; ratio[1][3]=x/ratio[1][1]*ratio[1][3]; ratio[2][3]=x/ratio[2][2]*ratio[2][3]; } void output() { if(Notnone(1)&&Notnone(2)&&Another()) fout<<ratio[0][3]<<' '<<ratio[1][3]<<' '<<ratio[2][3]<<' '<<x<<endl; else fout<<"NONE"<<endl; } int main() { input(); work(); output(); return 0; }