Pagini recente » Cod sursa (job #647380) | Cod sursa (job #2039024) | Cod sursa (job #1822162) | Cod sursa (job #2828120) | Cod sursa (job #2784226)
//#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
long double a[305][305],ans[605];
const long double tol=1e-5;
int p[505],n,m,j;
long double fabs (long double x)
{
if(x<(long double)(0))return -x;
return x;
}
ifstream in ("gauss.in");
ofstream out ("gauss.out");
int main()
{
in>>n>>m;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m+1; j++)
{
in>>a[i][j];
}
}
for(int i=1; i<=n; i++)
{
for( j=1; j<=m+1; j++)
{
if(fabs(a[i][j])>tol )break;
}
if(j==m+2)continue;
if(j==m+1)
{
out<<"Imposibil";
return 0;
}
else
{
p[i]=j;
for(j=1; j<=n; j++)
{
if(i!=j&& fabs( a[j][p[i]] )>tol )
{
long double factor;
factor = a[j][ p[i] ] / a[i][ p[i] ];
for(int k=1; k<=m+1; k++)
{
a[j][k] -= factor * a[i][k];
}
}
}
}
}
for(int i=1; i<=n; i++)
{
if(p[i])
ans[ p[i] ]=a[i][m+1]/a[i][p[i]];
}
for(int i=1; i<=m; i++)
{
out<<setprecision(10)<<fixed<<ans[i]<<" ";
}
return 0;
}