#include
#include // Для использования INT_MIN и INT_MAX
using namespace std;
int main() {
int N, M;
cout << "Введите количество строк (N): ";
cin >> N;
cout << "Введите количество столбцов (M): ";
cin >> M;
int A[N][M];
cout << "Введите элементы матрицы " << N << "x" << M << ":" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cin >> A[i][j];
}
}
cout << "Исходная матрица:" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cout << A[i][j] << " ";
}
cout << endl;
}
for (int j = 0; j < M; j++) {
int minIndex = -1;
int minElement = INT_MAX;
int maxElement = INT_MIN;
// Найти минимальный элемент и его индекс в столбце
for (int i = 0; i < N; i++) {
if (A[i][j] < minElement) {
minElement = A[i][j];
minIndex = i;
}
}
// Проверка, находится ли минимальный элемент во второй половине столбца
if (minIndex >= N / 2) {
// Найти максимальный элемент в столбце
for (int i = 0; i < N; i++) {
if (A[i][j] > maxElement) {
maxElement = A[i][j];
}
}
// Возвести максимальный элемент в куб
for (int i = 0; i < N; i++) {
if (A[i][j] == maxElement) {
A[i][j] = maxElement * maxElement * maxElement;
}
}
}
}
cout << "Преобразованная матрица:" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cout << A[i][j] << " ";
}
cout << endl;
}
return 0;
}