Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <utility>
- #include <algorithm>
- using namespace std;
- void line_sort(vector <vector <int>> & a, int N, int M, int place) {
- for (int i = 0; i < M; i++) {
- for (int j = 1; j < M; j++) {
- if (a[place][j] < a[place][j - 1]) {
- for (int k = 0; k < N; k++)
- swap(a[k][j], a[k][j - 1]);
- }
- else if (a[place][j] == a[place][j - 1]) {
- int l = 0;
- while (a[l][j] == a[l][j - 1] && l != N - 1) l++;
- if (a[l][j] < a[l][j - 1]) {
- for (int k = 0; k < N; k++)
- swap(a[k][j], a[k][j - 1]);
- }
- }
- }
- }
- }
- void column_sort(vector <vector <int>> & a, int N, int M, int place) {
- for (int i = 0; i < N; i++) {
- for (int j = 1; j < N; j++) {
- if (a[j][place] < a[j - 1][place]) {
- for (int k = 0; k < M; k++)
- swap(a[j][k], a[j - 1][k]);
- }
- else if (a[j][place] == a[j - 1][place]) {
- int l = 0;
- while (a[j][l] == a[j - 1][l] && l != M - 1) l++;
- if (a[j][l] < a[j - 1][l]) {
- for (int k = 0; k < M; k++)
- swap(a[j][k], a[j - 1][k]);
- }
- }
- }
- }
- }
- int main() {
- int N, M;
- cin >> N >> M;
- vector <vector <int>> A(N);
- for (int i = 0; i < N; i++)
- A[i].resize(M);
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < M; j++) {
- cin >> A[i][j];
- }
- }
- int linemin = 0, min = A[0][0];
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < M; j++) {
- if (A[i][j] < min) {
- linemin = i;
- min = A[i][j];
- }
- }
- }
- line_sort(A, N, M, linemin);
- column_sort(A, N, M, 0);
- cout << endl;
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < M; j++)
- cout << A[i][j] << ' ';
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment