JS_TZ_ZHR @ 2020-03-27 21:37:25
RT
#include <bits/stdc++.h>
int n,maxx;
double x[105][105],ans[105];
inline double _abs(double a) {
return a>0?a:-a;
}
int main() {
scanf("%d",&n);
for(int i=1; i<=n; i++)
for(int j=1; j<=n+1; j++)
scanf("%lf",&x[i][j]);
for(int i=1; i<=n; i++) {
maxx=i;
for(int j=i+1; j<=n; j++)
if(_abs(x[maxx][i])<_abs(x[j][i]))maxx=j;
if(_abs(x[maxx][i])<1e-8) {
if(x[i][n+1]!=0)
puts("-1");
else
puts("0");
return 0;
}
std::swap(x[i],x[maxx]);
double a=x[i][i];
for(int j=1; j<=n+1; j++)x[i][j]/=a;
for(int j=i+1; j<=n; j++) {
a=x[j][i];
for(int k=1; k<=n+1; k++)
x[j][k]-=x[i][k]*a;
}
}
for(int i=n; i>=1; i--) {
ans[i]=x[i][n+1];
for(int j=1; j<i; j++)
x[j][n+1]-=ans[i]*x[j][i];
}
for(int i=1; i<=n; i++)printf("x%d=%.2lf\n",i,ans[i]);
}