Vlad5080

восстановление матрицы

Feb 1st, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <random>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.  
  9.     int n, r;
  10.     cin >> n;
  11.     vector <vector <int> > a;
  12.     vector <int> bolean;
  13.  
  14.     for (int i = 0; i < n * n; i++) {
  15.         bolean.push_back(i + 1);
  16.     }
  17.  
  18.     for (int i = 0; i < n; i++) {
  19.         vector <int> b;
  20.         a.push_back(b);
  21.         for (int j = 0; j < n; j++) {
  22.             cin >> r;
  23.             a[i].push_back(r);
  24.         }
  25.     }
  26.  
  27.  
  28.     for (int i = 0; i < n; i++) {
  29.         for (int j = 0; j < n; j++) {
  30.  
  31.             if (a[i][j] != 0) {
  32.                 bolean[a[i][j] - 1] = 0;
  33.             }
  34.  
  35.         }
  36.     }
  37.     for (int i = 0; i < bolean.size(); i++) {
  38.         if (bolean[i] == 0) {
  39.             swap(bolean[i], bolean[bolean.size() - 1]);
  40.             bolean.pop_back();
  41.         }
  42.     }
  43.     for (int i = 0; i < bolean.size(); i++) {
  44.         if (bolean[i] == 0) {
  45.             swap(bolean[i], bolean[bolean.size() - 1]);
  46.             bolean.pop_back();
  47.         }
  48.     }
  49.     for (int i = 0; i < bolean.size(); i++) {
  50.         if (bolean[i] == 0) {
  51.             swap(bolean[i], bolean[bolean.size() - 1]);
  52.             bolean.pop_back();
  53.         }
  54.     }
  55.    
  56.  
  57.     for (int i = 0; i < n; i++) {
  58.         for (int j = 0; j < n; j++) {
  59.  
  60.             if (a[i][j] == 0) {
  61.                 int c = rand() % bolean.size();
  62.                 a[i][j] = bolean[c];
  63.                 swap(bolean[c], bolean[bolean.size() - 1]);
  64.                 bolean.pop_back();
  65.             }
  66.  
  67.         }
  68.     }
  69.  
  70.     for (int i = 0; i < n; i++) {
  71.         for (int j = 0; j < n; j++) {
  72.             cout << a[i][j] << ' ';
  73.         }
  74.         cout << endl;
  75.     }
  76.  
  77.     return 0;
  78. }
Add Comment
Please, Sign In to add comment