Advertisement
Guest User

Untitled

a guest
May 17th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <map>
  6. #include <stack>
  7. #include <deque>
  8. #include <set>
  9. #include <string>
  10. #include <limits>
  11. #include <fstream>
  12.  
  13. using namespace std;
  14.  
  15. int main(){
  16.         freopen("input.txt", "rt", stdin);
  17.         freopen("output.txt", "wt", stdout);
  18.         int n;
  19.         cin >> n;
  20.         vector < vector <double> > a(n, vector <double> (n, 0));  
  21.         for (int i = 0; i < n; i++){
  22.                 for (int j = 0; j < n; j++){
  23.                         scanf("%lf", &a[i][j]);
  24.                 }
  25.         }      
  26.         double det = 1;
  27.         for (int i = 0; i < n; i++){
  28.                 int row = i;
  29.                 int mx = a[i][i];
  30.                 for(int k = i+1; k < n; k++){
  31.                         if (abs(a[k][i]) > mx){
  32.                                 row = k;
  33.                                 mx = abs(a[k][i]);
  34.                         }
  35.                 }
  36.                 if (row != i) {
  37.                         det *= -1;
  38.                         swap(a[row], a[i]);
  39.                 }
  40.                 for (int j = i+1; j < n; j++){
  41.                         double e = a[j][i]/a[i][i];
  42.                         for (int k = i; k < n; k++){
  43.                                 a[j][k] -= e*a[i][k];
  44.                         }
  45.                 }
  46.         }
  47.         for (int i = 0; i < n; i++)
  48.                 det *= a[i][i];
  49.         printf("%.15lf", det);
  50.         return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement