B. Шустрые частицы Ограничение времени 1 секунда
Ограничение памяти 64.0 Мб
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Ученые-физики решили перепроверить данные очередного эксперимента и обсудить полученные результаты. Эксперимент состоял в том, что частицы разгоняли в ускорителе заряженных частиц и замеряли время прохождения по круговой орбите. Каждая частица имела уникальный идентификатор и проходила одинаковое количество кругов в ускорителе. Необходимо найти самую быструю частицу, у которой суммарное время прохождения всех кругов в ускорителе было минимальным. Имеются записи результатов прохождения каждой из n частиц каждого из m кругов в ускорителе.

Требуется написать программу, которая определит идентификатор самой быстрой частицы по имеющимся данным.

Формат ввода
Первая строка входного файла содержит два целых числа n и m (1 ≤ n, m ≤ 100). Последующие 2∙n строк описывают прохождение кругов в ускорителе каждой из частиц. Описание прохождения ускорителя частицей состоит из двух строк. Первая строка содержит идентификатор частицы с использованием только латинских букв (строчных и заглавных). Идентификаторы всех частиц различны, строчные и заглавные буквы в названиях различаются. Вторая строка содержит m положительных целых чисел, где каждое число – это время прохождения данной частицей каждого из m кругов в ускорителе (каждое из этих чисел не превосходит 1000). Длина каждой строки не превышает 255 символов.

Формат вывода
В выходной файл необходимо вывести идентификатор самой быстрой частицы. Если самых быстрых частиц несколько, требуется вывести ту из них, которая последней встретилась во входном потоке.

Пример
Ввод Вывод
5 3
Suma
2 1 1
Bari
2 1 2
Olon
1 2 1
Vasy
1 1 1
Fed
1 1 1

colery colery    2   09.12.2021 11:23    12

Ответы
valetto valetto  09.01.2024 17:14
Здравствуйте! Давайте решим эту задачу пошагово.

Первым шагом нам необходимо прочитать входные данные. Первая строка содержит целые числа n и m - количество частиц и количество кругов соответственно. Затем следуют 2n строк, описывающих прохождение кругов для каждой частицы. В первой строке указывается идентификатор частицы, а во второй строке - время прохождения каждого из m кругов.

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

Процесс решения задачи будет выглядеть примерно следующим образом:

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

Теперь, решив задачу пошагово, давайте напишем код на Python для решения данной задачи:

```python
n, m = map(int, input().split()) # Читаем значения n и m

particles = {} # Создаем пустой словарь

for _ in range(n):
particle_id = input() # Читаем идентификатор частицы
times = list(map(int, input().split())) # Читаем времена прохождения кругов
total_time = sum(times) # Получаем суммарное время прохождения кругов для текущей частицы

if particle_id in particles: # Если идентификатор частицы уже есть в словаре
if total_time < particles[particle_id]: # Если текущее время меньше времени из словаря
particles[particle_id] = total_time # Обновляем значение в словаре
else:
particles[particle_id] = total_time # Добавляем идентификатор и время в словарь

fastest_particle = min(particles, key=particles.get) # Ищем идентификатор с минимальным временем прохождения

print(fastest_particle) # Выводим идентификатор самой быстрой частицы
```

Этот код будет считывать входные данные, вычислять суммарное время прохождения кругов для каждой частицы и находить идентификатор самой быстрой. В конце он выведет этот идентификатор.

Я надеюсь, что этот ответ был понятен и полезен для вас! Если у вас возникнут еще вопросы, пожалуйста, не стесняйтесь задавать их.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы