9565. Минимум среди максимумов

 

Дан двумерный массив размером n * m. Найдите в каждой строке массива максимальный элемент. А затем среди всех максимальных элементов выберите минимальный.

 

Вход. В первой строке заданы два целых числа n и m – количество строк и столбцов массива соответственно. В следующих n строках содержится по m целых чисел. Все входные числа не превышают по модулю 100.

 

Выход. Выведите одно целое число – минимальное среди максимальных элементов строк.

 

Пример входа

Пример выхода

4 5

1 5 3 2 4

2 4 3 2 2

6 7 8 9 5

8 9 4 2 5

4

 

 

РЕШЕНИЕ

двумерный массив

 

Анализ алгоритма

В каждой строке массива найдем ее максимальный элемент. Пусть res[i] содержит максимальный элемент i-ой строки. Затем найдем минимальный элемент в массиве res.

 

Пример

Рассмотрим приведенный пример. Возле каждой строки запишем ее наибольший элемент. Наименьший среди этих наибольших элементов выделим.

 

Реализация алгоритма

Объявим рабочие  массивы.

 

int a[101][101], res[101];

 

Читаем размеры массива n и m.

 

scanf("%d %d", &n, &m);

 

Поскольку res[i] будет хранить максимальный элемент i-ой строки (1 ≤ in), инициализируем его наименьшим возможным значением.

 

for (j = 1; j <= n; j++)

  res[j] = -101;

 

Перебираем строки матрицы.

 

for (i = 1; i <= n; i++)

 

Читаем элементы i-ой строки и находим ее максимальное значение, которое сохраняем в res[i].

 

  for (j = 1; j <= m; j++)

  {

    scanf("%d", &a[i][j]);

    if (a[i][j] > res[i]) res[i] = a[i][j];

  }

 

Находим наименьший элемент mn в массиве res.

 

mn = 101;

for (i = 1; i <= n; i++)

  if (res[i] < mn) mn = res[i];

 

Выводим ответ.

 

printf("%d\n", mn);

 

Python реализация

Читаем размеры массива n и m.

 

n, m = map(int, input().split())

 

Инициализируем список res.

 

res = []

 

Перебираем строки матрицы.

 

for i in range(n):

 

Читаем элементы текущей строки матрицы и находим ее максимальное значение, которое добавляем в конец списка res.

 

  row = list(map(int, input().split()))

  res.append(max(row))

 

Находим наименьший элемент ans в массиве res и выводим его.

 

ans = min(res)

print(ans)