#include #include #include using namespace std; void Getminor(vector > a, vector > &b, int x, int y, int size) { int xCount = 0, yCount = 0; for (int i = 0; i < size; i++) { if (i != x) { yCount = 0; for (int j = 0; j < size; j++) { if (j != y) { b[xCount][yCount] = a[i][j]; yCount++; } } xCount++; } } } double FindDeterminant(vector > a, int size) { // останавливаем рекурсию, если матрица // состоит из одного элемента if (size == 1) { return a[0][0]; } else { double det = 0.0; vector > minor(size - 1, vector (size -1)); for (int i = 0; i < size; i++) { Getminor(a, minor, 0, i, size); // Рекурсия det += (((i % 2) == 0) ? 1 : -1) * a[0][i] * FindDeterminant(minor, size - 1); } return det; } } double FindAdditionalDeterminant(vector > a, vector b, int size, int j) { for (int i = 0; i < size; i++){ a[i][j] = b[i]; } double determinant = FindDeterminant(a, size); return determinant; } int main() { freopen("input.txt", "r", stdin); int n; cin >> n; vector > a(n, vector (n)); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cin >>a[i][j]; } } vector b(n); for (int i = 0; i < n; ++i) { cin >>b[i]; } cout << "n:" << n << endl; cout << "matr a:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) cout << a[i][j] <<" "; cout << endl; } cout << "vect b:" << endl; for (int i; i < n; i++) { cout << b[i] << endl; } cout << endl; // находим определитель матрицы double determinant = FindDeterminant(a, n); vector det(n); vector answers(n); for (int i = 0; i < n; ++i) { det[i] = FindAdditionalDeterminant(a, b, n, i); answers[i] = det[i] / determinant; } for (int i; i < n; i++) { cout << answers[i] << endl; } }