Pagini recente » Cod sursa (job #2117519) | Cod sursa (job #3283357) | Cod sursa (job #2228808) | Cod sursa (job #2733461) | Cod sursa (job #2635485)
/**
____ ____ ____ ____ ____
||a |||t |||o |||d |||o ||
||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|
**/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N_MAX = 305;
const int M_MAX = 305;
const double EPS = 1e-8;
int n, m;
double a[N_MAX][M_MAX];
int p[N_MAX];
double ans[M_MAX];
int main()
{
ifstream fin ("gauss.in");
ofstream fout ("gauss.out");
fin >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m + 1; j++)
fin >> a[i][j];
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
if(abs(a[i][j]) > EPS)
{
p[i] = j;
break;
}
if(p[i] == 0)
{
if(abs(a[i][m + 1]) > EPS)
{
fout << "Imposibil\n";
return 0;
}
continue;
}
for(int k = 1; k <= n; k++)
if(i != k && abs(a[k][p[i]]) > EPS)
{
double r = a[k][p[i]] / a[i][p[i]];
for(int j = 1; j <= m + 1; j++)
a[k][j] -= a[i][j] * r;
}
}
for(int i = 1; i <= n; i++)
if(p[i] != 0)
ans[p[i]] = a[i][m + 1] / a[i][p[i]];
for(int i = 1; i <= m; i++)
fout << fixed << setprecision(10) << ans[i] << " ";
fout << "\n";
return 0;
}