Pagini recente » Cod sursa (job #1775155) | Cod sursa (job #2241633) | Cod sursa (job #2174598) | Cod sursa (job #786690) | Cod sursa (job #1970083)
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
ifstream f("gauss.in");
ofstream g("gauss.out");
const double E = 1e-8;
int n, m, i, j, w;
int p[303];
double mat[303][303], aux, sol[303];
int main() {
f >> n >> m;
for (i = 1; i <= n; i++)
for (j = 1; j <= m+1; j++)
f >> mat[i][j];
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
if (fabs(mat[i][j]) >= E) break;
if (j == m+1) {
g << "Imposibil";
return 0;
}
if (j == m+2) continue;
p[i] = j;
for (j = 1; j <= n; j++)
if (i != j && fabs(mat[j][p[i]]) >= E) {
aux = mat[j][p[i]]/mat[i][p[i]];
for (w = 1; w <= m+1; w++)
mat[j][w] -= aux * mat[i][w];
}
}
for (i = 1; i <= n; i++)
if (p[i])
sol[p[i]] = mat[i][m+1]/mat[i][p[i]];
for (i = 1; i <= m; i++)
g << fixed << setprecision(10) << sol[i] << ' ';
return 0;
}