#include
#include
#include
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector> A(n, vector(m));
// Ввод массива
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> A[i][j];
}
}
int maxElement = INT_MIN;
int maxRow = -1;
int maxCol = -1;
// Поиск максимального элемента и его координат
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (A[i][j] > maxElement || (A[i][j] == maxElement && i < maxRow) ||
(A[i][j] == maxElement && i == maxRow && j < maxCol)) {
maxElement = A[i][j];
maxRow = i;
maxCol = j;
}
}
}
// Обмен столбца с максимальным элементом и первого столбца
for (int i = 0; i < n; ++i) {
swap(A[i][0], A[i][maxCol]);
}
// Вывод результирующего массива
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << A[i][j] << " ";
}
cout << endl;
}
return 0;
}
Если в массиве существует несколько максимальных элементов, требуется выбрать такой, что номер его строки минимален. Если же и таких элементов несколько, требуется выбрать такой, что номер его столбца минимален.
Входные данные
В первой строек задается два целых числа n и m (1 ≤ n, m ≤ 100).
Далее следует n строк. В строке с номером i через пробел задается m целых чисел A(i,1),A(i,2)....A(i,m) (-100 ≤ A(i,j) ≤ 100)
Выходные данные
Выведите n строк по m чисел в каждой — элементы массива A после обмена столбцов. Числа в строках разделяйте пробелами.