Pagini recente » Cod sursa (job #937842) | Cod sursa (job #2036555) | Cod sursa (job #2017711) | Cod sursa (job #3154156) | Cod sursa (job #2052198)
#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
const int nmax=305;
const double eps=0.000000001;
ifstream f("gauss.in");
ofstream g("gauss.out");
double a[nmax][nmax];
double ans[nmax];
double rap;
int p[nmax];
int n,m,i,j,idx;
void gauss()
{
for(i=1;i<=n;i++)
{
while(fabs(a[i][p[i]])<eps&&p[i]<=m+1)
p[i]++;
if(p[i]>m+1)
continue;
if(p[i]==m+1)
{
g<<"Imposibil";
return;
}
for(j=1;j<=n;j++)
if(j!=i&&fabs(a[j][p[i]])>0)
{
rap=a[j][p[i]]/a[i][p[i]];
for(idx=1;idx<=m+1;idx++)
a[j][idx]-=rap*a[i][idx];
a[j][p[i]]=0;
}
}
for(i=1;i<=n;i++)
ans[p[i]]=a[i][m+1]/a[i][p[i]];
}
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m+1;j++)
f>>a[i][j];
gauss();
for(i=1;i<=m;i++)
g<<fixed<<setprecision(10)<<ans[i]<<' ';
return 0;
}