В соревновании по метанию молота участвуют n спортcменов, каждый из которых делает m бросков. Победитель определяется

В соревновании по метанию молота участвуют n спортcменов, каждый из которых делает m бросков. Победитель определяется по лучшему результату. Определите количество спортсменов, которые разделили первое место, а также самих участников состязаний, которые показали наилучший результат. Необходимо посчитать количество строк в массиве, в которых значение равно наибольшему. Входные данные: Программа получает на вход два числа - n и m, которые являются количеством строк и столбцов в массиве. Далее вводятся n строк по m чисел, которые являются элементами массива. Выходные данные: Сначала программа выводит количество спортсменов, которые показали наилучший результат, а затем самих спортсменов.
Rys

Rys

Будет проведена проверка на корректность входных данных для задачи. Если введенные значения n и m являются положительными целыми числами, то можно перейти к решению задачи.

Для начала, мы создадим двумерный массив, представляющий результаты соревнований. Поскольку нам нужно узнать, сколько строк в массиве имеют значение равное наибольшему, нам также пригодится одномерный массив, где будем хранить самые высокие результаты каждого участника.

Опишем алгоритм решения задачи:

1. Введите значения переменных n и m, представляющих количество спортсменов и количество бросков соответственно.
2. Создайте двумерный массив размером n x m, где каждый элемент будет представлять результат одного спортсмена в каждом броске. Инициализируйте массив значениями, введенными пользователем.
3. Создайте одномерный массив размером n, где каждый элемент будет представлять самый высокий результат каждого спортсмена. Инициализируйте массив нулями.
4. Найдите наивысший результат среди всех значений в массиве результатов соревнований. Для этого пройдитесь по всем элементам двумерного массива и сравните их с текущим максимальным значением. Если значение больше текущего максимального, обновите его.
5. Пройдитесь по каждой строке двумерного массива и проверьте, сколько строк соответствуют наивысшему результату. Подсчитайте количество строк и запишите их индексы в отдельный массив.
6. Выведите количество строк с наивысшим результатом и индексы участников, показавших наилучший результат.

Пример решения задачи:

python
n, m = map(int, input("Введите количество спортсменов и количество бросков: ").split())

# Создание двумерного массива результатов соревнований
results = []
for i in range(n):
row = list(map(int, input("Введите результаты спортсмена {}: ".format(i + 1)).split()))
results.append(row)

# Создание одномерного массива самых высоких результатов
highest_results = [0] * n
for i in range(n):
highest_results[i] = max(results[i])

# Поиск наивысшего результата
max_result = max(highest_results)

# Поиск количества строк с наивысшим результатом и индексов участников
indices = []
for i in range(n):
if highest_results[i] == max_result:
indices.append(i)

# Вывод результатов
print("Количество спортсменов, разделивших первое место:", len(indices))
print("Участники, показавшие наилучший результат:", indices)


Надеюсь, это решение помогло разобраться в задаче. Если возникнут еще вопросы, не стесняйтесь задавать!
Знаешь ответ?
Задать вопрос
Привет!
hello