JuliaMelkozerova

HW3B

Mar 21st, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <utility>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. void line_sort(vector <vector <int>> & a, int N, int M, int place) {
  9.     for (int i = 0; i < M; i++) {
  10.         for (int j = 1; j < M; j++) {
  11.             if (a[place][j] < a[place][j - 1]) {
  12.                 for (int k = 0; k < N; k++)
  13.                     swap(a[k][j], a[k][j - 1]);
  14.             }
  15.             else if (a[place][j] == a[place][j - 1]) {
  16.                 int l = 0;
  17.                 while (a[l][j] == a[l][j - 1] && l != N - 1) l++;
  18.                 if (a[l][j] < a[l][j - 1]) {
  19.                     for (int k = 0; k < N; k++)
  20.                         swap(a[k][j], a[k][j - 1]);
  21.                 }
  22.             }
  23.         }
  24.     }
  25. }
  26.  
  27. void column_sort(vector <vector <int>> & a, int N, int M, int place) {
  28.     for (int i = 0; i < N; i++) {
  29.         for (int j = 1; j < N; j++) {
  30.             if (a[j][place] < a[j - 1][place]) {
  31.                 for (int k = 0; k < M; k++)
  32.                     swap(a[j][k], a[j - 1][k]);
  33.             }
  34.             else if (a[j][place] == a[j - 1][place]) {
  35.                 int l = 0;
  36.                 while (a[j][l] == a[j - 1][l] && l != M - 1) l++;
  37.                 if (a[j][l] < a[j - 1][l]) {
  38.                     for (int k = 0; k < M; k++)
  39.                         swap(a[j][k], a[j - 1][k]);
  40.                 }
  41.             }
  42.         }
  43.     }
  44. }
  45.  
  46. int main() {
  47.     int N, M;
  48.     cin >> N >> M;
  49.     vector <vector <int>> A(N);
  50.     for (int i = 0; i < N; i++)
  51.         A[i].resize(M);
  52.    
  53.     for (int i = 0; i < N; i++) {
  54.         for (int j = 0; j < M; j++) {
  55.             cin >> A[i][j];
  56.         }
  57.     }
  58.    
  59.     int linemin = 0, min = A[0][0];
  60.     for (int i = 0; i < N; i++) {
  61.         for (int j = 0; j < M; j++) {
  62.             if (A[i][j] < min) {
  63.                 linemin = i;
  64.                 min = A[i][j];
  65.             }
  66.         }
  67.     }
  68.    
  69.     line_sort(A, N, M, linemin);
  70.     column_sort(A, N, M, 0);
  71.    
  72.     cout << endl;
  73.     for (int i = 0; i < N; i++) {
  74.         for (int j = 0; j < M; j++)
  75.             cout << A[i][j] << ' ';
  76.         cout << endl;
  77.     }
  78.    
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment