Pagini recente » Cod sursa (job #3334554) | Cod sursa (job #2215267) | Cod sursa (job #1036773) | Monitorul de evaluare | Cod sursa (job #3325792)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("gauss.in");
ofstream fout("gauss.out");
vector<double> ec[302];
int n, m, rasp[302], i, j;
int main() {
//ios_base::sync_with_stdio(false);
fin.tie(nullptr);
fout.tie(nullptr);
fin >> n >> m;
for(i = 0; i < n; i++) {
ec[i].resize(m + 1);
for(j = 0; j <= m; j++) fin >> ec[i][j];
}
i = 0;
j = 0;
while(i < n && j < m) {
bool nule = true;
int linNen = 0;
for(int ii = i; ii < n && nule; ii++) {
if(ec[ii][j] != 0) {
nule = false;
linNen = ii;
}
}
if(!nule) {
ec[i].swap(ec[linNen]);
double rap = ec[i][j];
for(int jj = j; jj <= m; jj++) {
ec[i][jj] /= rap;
}
for(int ii = i + 1; ii < n; ii++) {
double z = ec[ii][j];
for(int jj = j; jj <= m; jj++) ec[ii][jj] -= z * ec[i][jj];
}
i++;
}
j++;
}
for(i = n - 1; i >= 0; i--) {
double sum = ec[i][m];
for(j = m - 1; j > i; j--) sum -= rasp[j] * ec[i][j];
rasp[i] = sum / ec[i][i];
}
for(i = 0; i < m; i++) fout << setprecision(10) << fixed << rasp[i] << " ";
/*for(i = 0; i < n; i++) {
for(j = 0; j <= m; j++) fout << ec[i][j] << " ";
fout << "\n";
}*/
return 0;
}