Pagini recente » Profil Liviuu23 | Cod sursa (job #868189) | Cod sursa (job #2468543) | Cod sursa (job #2206593) | Cod sursa (job #1002224)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("gauss.in");
ofstream g ("gauss.out");
#define eps 0.0000001
#define db double
#define LE 106
#include <iomanip>
db a[LE][LE];
int linie,i,j,t,n,m;
int _left[LE];
db rez[LE];
int main()
{
f>>n>>m;
g<<fixed;
g<<setprecision(10);
for(i=1; i<=n; ++i)
for(j=1; j<=m+1; ++j)
{
f>>a[i][j];
if (a[i][j]&&_left[i]==0) _left[i]=j;
}
linie=1;
for(i=1; i<=m; ++i)
{
bool okz=false;
for(j=linie; j<=n&&okz==false; ++j)
if (a[linie][i]<=-eps||a[linie][i]>=eps)
{
for(t=1; t<=m+1; ++t) swap(a[linie][t],a[j][t]);
++linie;
okz=true;
break;
}
if (okz==false) continue;
for(j=linie; j<=n; ++j)
{
db coef=a[j][i]/a[linie-1][i];
for(t=1; t<=m+1; ++t)
a[j][t]-=coef*a[linie-1][t];
}
}
for(i=linie-1; i>0; --i)
{
for(j=1; j<=m+1; ++j)
if (a[i][j]<=-eps||a[i][j]>=eps)
{
if (j==m+1)
{
g<<"Imposibil"<<'\n';
return 0;
}
rez[j]=a[i][m+1]/a[i][j];
for(t=j-1; t>0; --t) a[t][m+1]-=rez[j]*a[t][j];
break;
}
}
for(i=1; i<=m; ++i) g<<rez[i]<<" ";
f.close();
g.close();
return 0;
}