#include <algorithm>
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
size_t icmin(int matrix[][6], size_t n) {
int min = matrix[0][0];
size_t index = 0;
for (auto i = 0U; i < n; ++i) {
for (auto j = 0U; j < n; ++j) {
if (matrix[i][j] < min) {
min = matrix[i][j];
index = j;
}
}
}
return index;
}
size_t icmax(int matrix[][6], size_t n) {
int max = matrix[0][0];
size_t index = 0;
for (auto i = 0U; i < n; ++i) {
for (auto j = 0U; j < n; ++j) {
if (matrix[i][j] > max) {
max = matrix[i][j];
index = j;
}
}
}
return index;
}
void rotate(int matrix[][6], size_t n, size_t imin, size_t imax) {
for (auto i = 0U; i < n; ++i) {
swap(matrix[i][imin], matrix[i][imax]);
}
}
int main() {
system("chcp 1251 > nul");
uniform_int_distribution<> uid(-100, 0);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
auto print = [](int x) { cout << setw(5) << x; };
int matrix[6][6];
for (auto& row : matrix) generate(begin(row), end(row), rand);
for (auto& row : matrix) {
for_each(begin(row), end(row), print);
puts("");
}
puts("");
auto imin = icmin(matrix, size(matrix));
auto imax = icmax(matrix, size(matrix));
if (imin != imax) {
rotate(matrix, size(matrix), imin, imax);
for (auto& row : matrix) {
for_each(begin(row), end(row), print);
puts("");
}
} else puts("Замена не нужна!");
system("pause > nul");
}