Pagini recente » Cod sursa (job #2581135) | Cod sursa (job #3191783) | Cod sursa (job #2136901) | Cod sursa (job #653877) | Cod sursa (job #1952126)
#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
const int Nmax = 303;
int n, m, i, j, k, p[Nmax];
double coef, a[Nmax][Nmax], ans[Nmax];
int main()
{
freopen("gauss.in", "r", stdin);
freopen("gauss.out", "w", stdout);
scanf("%d%d", &m, &n);
for(i=1; i<=m; ++i)
for(j=1; j<=n+1; ++j)
scanf("%lf", &a[i][j]);
for(i=1; i<=m; ++i)
{
for(j=1; j<=n+1; ++j)
if(fabs(a[i][j]) > eps) break;
if(j==n+2) continue;
if(j==n+1)
{
printf("Imposibil\n");
return 0;
}
p[i] = j;
for(j=1; j<=m; ++j)
if(i!=j)
{
coef = a[j][p[i]] / a[i][p[i]];
for(k=1; k<=n+1; ++k)
a[j][k] -= coef * a[i][k];
}
}
for(i=1; i<=m; ++i) if(p[i]) ans[p[i]] = a[i][n+1] / a[i][p[i]];
for(i=1; i<=n; ++i) printf("%.10lf ", ans[i]);
}