#include <iostream>
#include<iomanip>
using namespace std;
int main()
{int n,i,j,k,a,X;
cout.precision(4);
cout.set(ios::fixed);
cout<<"\n enter the elements of augmented matrixs row wise \n";
for (i=0;i<n;i++)
for (j=o;j<=n;j++)
cin>>a[i][j];
for (i=0;i<n;i++)
for(k=i+1;k<n;k++)
if(abs(a[i][i])<abs(a[k][i]))
for(j=0;j<=n;j++)
{double temp=a[i][j];
a[i][j]=a[k][j];
a[k][j]=temp;
}
cout<<"\n the matrix after pivotisation is: \n";
for (i=0;i<n;i++)
{
for (j=o;j<=n;j++)
cout<<a[i][j]<<setw(16);
cout<<"\n";
}
for (i=0;i<n-1;i++)
for(k=i+1;k<n;k++)
{
double t=a[k][i]/a[i][i];
for (j=0;j<=n;j++)
a[k][j]=a[k][j]-t*a[i][j];
}
cout<<"\n matrix after gauss elimination is as follows:\n";
for (i=0;i<n;i++)
{
for (j=o;j<=n;j++)
cout<<a[i][j]<<setw(16);
cout<<"\n";
}
for(i=n-1;i>=0;i--)
{X[i]=a[i][n];
for (j=i+1;j<n;j++)
if(j!=i)
X[i]=X[i]-a[i][j]*X[j];
X[i]=X[i]/a[i][j];
}
cout<<"\n the values of variables are as follows :\n";
for (i=0;i<n;i++)
cout<<X[i]<<end l;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxpb21hbmlwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7aW50IG4saSxqLGssYSxYOwogY291dC5wcmVjaXNpb24oNCk7CiBjb3V0LnNldChpb3M6OmZpeGVkKTsKIGNvdXQ8PCJcbiBlbnRlciB0aGUgZWxlbWVudHMgb2YgYXVnbWVudGVkIG1hdHJpeHMgcm93IHdpc2UgXG4iOwogZm9yIChpPTA7aTxuO2krKykKIGZvciAoaj1vO2o8PW47aisrKQogY2luPj5hW2ldW2pdOwogIGZvciAoaT0wO2k8bjtpKyspCiAgZm9yKGs9aSsxO2s8bjtrKyspCiAgaWYoYWJzKGFbaV1baV0pPGFicyhhW2tdW2ldKSkKICBmb3Ioaj0wO2o8PW47aisrKQogIHtkb3VibGUgdGVtcD1hW2ldW2pdOwogICBhW2ldW2pdPWFba11bal07CiAgIGFba11bal09dGVtcDsKICB9CiAgY291dDw8IlxuIHRoZSBtYXRyaXggYWZ0ZXIgcGl2b3Rpc2F0aW9uIGlzOiBcbiI7CiAgZm9yIChpPTA7aTxuO2krKykKICB7CiAgCSAgZm9yIChqPW87ajw9bjtqKyspCiAgCSAgY291dDw8YVtpXVtqXTw8c2V0dygxNik7CiAgCSAgY291dDw8IlxuIjsKICB9Cglmb3IgKGk9MDtpPG4tMTtpKyspCiAgICBmb3Ioaz1pKzE7azxuO2srKykKICAgIHsKICAgIAlkb3VibGUgdD1hW2tdW2ldL2FbaV1baV07CiAgICAJZm9yIChqPTA7ajw9bjtqKyspCiAgICAJYVtrXVtqXT1hW2tdW2pdLXQqYVtpXVtqXTsKICAgIH0KICAgIGNvdXQ8PCJcbiBtYXRyaXggYWZ0ZXIgZ2F1c3MgZWxpbWluYXRpb24gaXMgYXMgZm9sbG93czpcbiI7CiAgICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgewogIAkgICAgIGZvciAoaj1vO2o8PW47aisrKSAKICAJICAgICBjb3V0PDxhW2ldW2pdPDxzZXR3KDE2KTsKICAJICAgICBjb3V0PDwiXG4iOwogICAgICB9CiAgICAgIGZvcihpPW4tMTtpPj0wO2ktLSkKICAgICAge1hbaV09YVtpXVtuXTsKICAgICAgICAgZm9yIChqPWkrMTtqPG47aisrKQogICAgICAgICBpZihqIT1pKQogICAgICAgICAgIFhbaV09WFtpXS1hW2ldW2pdKlhbal07CiAgICAgICAgICAgWFtpXT1YW2ldL2FbaV1bal07CiAgICAgIH0KICAgICAgY291dDw8IlxuIHRoZSB2YWx1ZXMgb2YgdmFyaWFibGVzIGFyZSBhcyBmb2xsb3dzIDpcbiI7CiAgICAgIGZvciAoaT0wO2k8bjtpKyspCiAgICAgIGNvdXQ8PFhbaV08PGVuZCBsOwogICAgICAKCXJldHVybiAwOwp9