#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void printMatrix(const vector<vector<int>>& matrix) {
for (const vector<int>& row : matrix) {
for (int element : row) {
cout << element << " ";
}
cout << endl;
}
}
void sortAboveMainDiagonal(vector<vector<int>>& matrix) {
int n = matrix.size();
for (int row = 1; row < n; ++row) {
vector<int> subdiagonal(row + 1);
for (int col = 0; col <= row; ++col) {
subdiagonal[col] = matrix[row - col][col];
}
sort(subdiagonal.begin(), subdiagonal.end());
for (int col = 0; col <= row; ++col) {
matrix[row - col][col] = subdiagonal[col];
}
}
}
int main() {
vector<vector<int>> matrix = {
{9, 4, 5},
{3, 2, 7},
{6, 8, 1},
};
cout << "Исходный массив:" << endl;
printMatrix(matrix);
sortAboveMainDiagonal(matrix);
cout << "\nОтсортированный массив:" << endl;
printMatrix(matrix);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcHJpbnRNYXRyaXgoY29uc3QgdmVjdG9yPHZlY3RvcjxpbnQ+PiYgbWF0cml4KSB7CiAgZm9yIChjb25zdCB2ZWN0b3I8aW50PiYgcm93IDogbWF0cml4KSB7CiAgICBmb3IgKGludCBlbGVtZW50IDogcm93KSB7CiAgICAgIGNvdXQgPDwgZWxlbWVudCA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CiAgfQp9Cgp2b2lkIHNvcnRBYm92ZU1haW5EaWFnb25hbCh2ZWN0b3I8dmVjdG9yPGludD4+JiBtYXRyaXgpIHsKICBpbnQgbiA9IG1hdHJpeC5zaXplKCk7CgogIGZvciAoaW50IHJvdyA9IDE7IHJvdyA8IG47ICsrcm93KSB7CiAgICAKICAgIHZlY3RvcjxpbnQ+IHN1YmRpYWdvbmFsKHJvdyArIDEpOwogICAgZm9yIChpbnQgY29sID0gMDsgY29sIDw9IHJvdzsgKytjb2wpIHsKICAgICAgc3ViZGlhZ29uYWxbY29sXSA9IG1hdHJpeFtyb3cgLSBjb2xdW2NvbF07CiAgICB9CgogICAgc29ydChzdWJkaWFnb25hbC5iZWdpbigpLCBzdWJkaWFnb25hbC5lbmQoKSk7CgogICAgZm9yIChpbnQgY29sID0gMDsgY29sIDw9IHJvdzsgKytjb2wpIHsKICAgICAgbWF0cml4W3JvdyAtIGNvbF1bY29sXSA9IHN1YmRpYWdvbmFsW2NvbF07CiAgICB9CiAgfQp9CgppbnQgbWFpbigpIHsKCiAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBtYXRyaXggPSB7CiAgICB7OSwgNCwgNX0sCiAgICB7MywgMiwgN30sCiAgICB7NiwgOCwgMX0sCiAgfTsKCiAgY291dCA8PCAi0JjRgdGF0L7QtNC90YvQuSDQvNCw0YHRgdC40LI6IiA8PCBlbmRsOwogIHByaW50TWF0cml4KG1hdHJpeCk7CgogIHNvcnRBYm92ZU1haW5EaWFnb25hbChtYXRyaXgpOwoKICBjb3V0IDw8ICJcbtCe0YLRgdC+0YDRgtC40YDQvtCy0LDQvdC90YvQuSDQvNCw0YHRgdC40LI6IiA8PCBlbmRsOwogIHByaW50TWF0cml4KG1hdHJpeCk7CgogIHJldHVybiAwOwp9Cg==