#include<iostream>
#include<iomanip>
using namespace std;
int main() {
int n;
cout << "Enter the order of square matrix: ";
cin >> n;
double A[20][20], x[20];
cout << "Enter the elements of augmented matrix row-wise:\n";
for(int i = 0; i < n; i++) {
for(int j = 0; j <= n; j++) {
cin >> A[i][j];
}
}
// Gaussian Elimination (Forward Elimination)
for(int j = 0; j < n; j++) {
for(int i = j+1; i < n; i++) {
double ratio = A[i][j] / A[j][j];
for(int k = 0; k <= n; k++) {
A[i][k] -= ratio * A[j][k];
}
}
}
// Back Substitution
for(int i = n-1; i >= 0; i--) {
x[i] = A[i][n];
for(int j = i+1; j < n; j++) {
x[i] -= A[i][j] * x[j];
}
x[i] /= A[i][i];
}
// Output the solution
cout << fixed << setprecision(6);
cout << "The solution is:\n";
for(int i = 0; i < n; i++) {
cout << "x" << i+1 << " = " << x[i] << endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGlvbWFuaXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY291dCA8PCAiRW50ZXIgdGhlIG9yZGVyIG9mIHNxdWFyZSBtYXRyaXg6ICI7CiAgICBjaW4gPj4gbjsKCiAgICBkb3VibGUgQVsyMF1bMjBdLCB4WzIwXTsKCiAgICBjb3V0IDw8ICJFbnRlciB0aGUgZWxlbWVudHMgb2YgYXVnbWVudGVkIG1hdHJpeCByb3ctd2lzZTpcbiI7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8PSBuOyBqKyspIHsKICAgICAgICAgICAgY2luID4+IEFbaV1bal07CiAgICAgICAgfQogICAgfQoKICAgIC8vIEdhdXNzaWFuIEVsaW1pbmF0aW9uIChGb3J3YXJkIEVsaW1pbmF0aW9uKQogICAgZm9yKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgIGZvcihpbnQgaSA9IGorMTsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkb3VibGUgcmF0aW8gPSBBW2ldW2pdIC8gQVtqXVtqXTsKICAgICAgICAgICAgZm9yKGludCBrID0gMDsgayA8PSBuOyBrKyspIHsKICAgICAgICAgICAgICAgIEFbaV1ba10gLT0gcmF0aW8gKiBBW2pdW2tdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIEJhY2sgU3Vic3RpdHV0aW9uCiAgICBmb3IoaW50IGkgPSBuLTE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgeFtpXSA9IEFbaV1bbl07CiAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIHhbaV0gLT0gQVtpXVtqXSAqIHhbal07CiAgICAgICAgfQogICAgICAgIHhbaV0gLz0gQVtpXVtpXTsKICAgIH0KCiAgICAvLyBPdXRwdXQgdGhlIHNvbHV0aW9uCiAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig2KTsKICAgIGNvdXQgPDwgIlRoZSBzb2x1dGlvbiBpczpcbiI7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY291dCA8PCAieCIgPDwgaSsxIDw8ICIgPSAiIDw8IHhbaV0gPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==