Pagini recente » Cod sursa (job #916165) | Cod sursa (job #455384) | Cod sursa (job #3235190) | Cod sursa (job #727922) | Cod sursa (job #2691039)
#include <bits/stdc++.h>
using namespace std;
#define DIM_MAX 303
ifstream fin ("gauss.in");
ofstream fout ("gauss.out");
const double epss = 1e-10;
int m, n;
int verif (double x){
if (x >= -epss && x <= epss)
return 1;
return 0;
}
double v [DIM_MAX][DIM_MAX], ans [DIM_MAX];
int mvin (){
fin >> n >> m;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m + 1; j ++)
fin >> v [i][j];
for (int i = 1, j = 1; i <= n && j <= m; i ++, j ++){
for (int k = i; k <= n; k ++){
if (verif (v [k][j]) == 0){
for (int u = 1; u <= m + 1; u ++)
swap (v [k][u], v [i][u]);
}
}
if (verif (v [i][j]) == 1){
i --; continue;
}
for (int l = j + 1; l <= m + 1; l ++)
v [i][l] /= v [i][j];
v [i][j] = 1;
for (int k = i + 1; k <= n; k ++){
for (int u = j + 1; u <= m + 1; u ++)
v [k][u] -= v [k][j] * v [i][u];
v [k][j] = 0;
}
}
for (int i = n; i >= 0; i --){
for (int j = 1; j <= m + 1; j ++){
if (verif (v [i][j]) == 1)
continue;
if (j == m + 1){
fout << "Imposibil";
return 0;
}
ans [j] = v [i][m + 1];
for (int k = j + 1; k <= m; k ++)
ans [j] -= v [i][k] * ans [k];
break;
}
}
for (int i = 1; i <= m; i ++)
fout << setprecision(10) << fixed << ans[i] << " ";
return 0;
}