Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- void cout(std::vector<std::vector<double>>& matrix) {
- for (int i = 0; i < matrix.size(); ++i) {
- for (int j = 0; j < matrix[i].size(); ++j) {
- std::cout << matrix[i][j] << ' ';
- }
- std::cout << "\n";
- }
- std::cout << "\n";
- }
- void dive(std::vector<std::vector<double>>& matrix, int i, int j) {
- if (i >= matrix.size()) return;
- if (matrix[i].size() <= j) return;
- if (matrix[i][j] == 0) {
- int i1 = i;
- while (i1 < matrix.size() && matrix[i1][j] == 0) {
- ++i1;
- }
- if (i1 >= matrix.size()) {
- dive(matrix, i, j + 1);
- return;
- }
- if (matrix[i1][j] == 0) {
- dive(matrix, i, j + 1);
- return;
- }
- std::swap(matrix[i], matrix[i1]);
- }
- for (int i1 = i + 1; i1 < matrix.size(); ++i1) {
- double k = matrix[i1][j] / matrix[i][j];
- for (int j1 = j; j1 < matrix[i1].size(); ++j1) {
- matrix[i1][j1] -= matrix[i][j1] * k;
- cout(matrix);
- }
- }
- dive(matrix, i + 1, j + 1);
- }
- int main() {
- int n, m;
- std::cin >> n >> m;
- std::vector<std::vector<double>> matrix(n, std::vector<double>(m));
- std::vector<std::string> ans;
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < m; ++j) {
- std::cin >> matrix[i][j];
- }
- }
- std::cout << "\n";
- dive(matrix, 0, 0);
- cout(matrix);
- for (int i = matrix.size() - 1; i >= 0; --i) {
- if (matrix[i][m - 1] == 0) continue;
- if (matrix[i][m - 2] == 0) {
- std::cout << "no roots";
- return 0;
- }
- else {
- char letters = 'a';
- for (int j = m - 2; j > 0 && i > 0; --j) {
- if (matrix[i][j - 1] != 0) {
- std::string s;
- s.push_back(letters);
- ans.push_back(s);
- letters = (letters + 1 - 'a') % 27 + 'a';
- continue;
- }
- else {
- //сделать переменную отвечающую за прошлые корни и подконнектить к массиву анс, также флаг на присутствие до пустых членов
- }
- }
- break;
- }
- }
- for (int i = 0; i < n; ++i) {
- if (matrix[i][i] == 0) break;
- std::cout << "x" << i + 1 << ": " << matrix[i][m - 1] / matrix[i][i] << "\n";
- }
- }
- /*
- 4 4
- 1 1 -3 -1
- 2 1 -2 1
- 1 1 1 3
- 1 2 -3 1
- 4 4
- 2 1 1 2
- 1 3 1 5
- 1 1 5 -7
- 2 3 -3 14
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement