Формула N Оценка за задачу: 30 баллов В гонках "Формулы N" участвует N машин. В результате квалификационного...

Тематика Информатика
Уровень 5 - 9 классы
гонки Формула N машины обгоны квалификация текстовая трансляция порядок машин Василий сообщения результат
0

Формула N

Оценка за задачу: 30 баллов

В гонках "Формулы N" участвует N машин. В результате квалификационного заезда машины получили порядковые номера и стартовали в порядке от 1 до N.

Вася - страстный поклонник гонок, но у него в общежитии плохой интернет и он не может смотреть видео-трансляцию. Поэтому он вынужден читать текстовую трансляцию, в которой все сообщения имеют вид "Машина номер X обогнала машину номер Y".

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

Формат входных данных

В первой строке заданы два натуральных числа N и M (1 ≤ N, M ≤ 100000) - количество машин и сообщений об обгоне соответственно.

В следующих M строках содержатся описание сообщений об обгоне: пары чисел X и Y (1 ≤ X, Y ≤ N) - машина X обогнала машину Y. Гарантируется, что машина Y ехала непосредственно перед машиной X на момент сообщения.

Формат результата

Выведите N чисел - порядок, в котором находятся машины после обработки всех сообщений.

Примеры

Входные данные

3 4 2 1 3 1 3 2 1 2 Результат работы

3 1 2

avatar
задан месяц назад

2 Ответа

0

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

После построения графа выполним топологическую сортировку. Это позволит нам определить порядок, в котором машины находятся на трассе.

После сортировки выведем порядок, в котором находятся машины. Например, для входных данных 3 4 и сообщений об обгонах: 2 1, 3 1, 3 2, 1 2 порядок машин будет 3 1 2.

avatar
ответил месяц назад
0

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

Подход к решению:

  1. Инициализация:

    • Создаем список порядок, который изначально содержит номера машин от 1 до N, что отражает их начальный порядок на трассе.
  2. Обработка сообщений об обгонах:

    • Проходим по каждому сообщению об обгоне.
    • Для каждой пары (X, Y) выполняем следующие шаги:
      • Найти индекс машины Y в текущем списке порядок.
      • Так как гарантируется, что X обгоняет Y и Y непосредственно перед X, то X находится сразу после Y в текущем порядке.
      • Меняем местами X и Y в списке порядок, чтобы отразить обгон.
  3. Вывод результата:

    • После обработки всех сообщений об обгонах выводим текущий порядок машин.

Пример решения:

Рассмотрим пример из условия задачи:

Входные данные:

3 4
2 1
3 1
3 2
1 2

Решение:

  • Изначально: порядок = [1, 2, 3]
  1. Сообщение 2 1:

    • Порядок до обгона: [1, 2, 3]
    • После обгона 2 обгоняет 1: порядок становится [2, 1, 3]
  2. Сообщение 3 1:

    • Порядок до обгона: [2, 1, 3]
    • После обгона 3 обгоняет 1: порядок становится [2, 3, 1]
  3. Сообщение 3 2:

    • Порядок до обгона: [2, 3, 1]
    • После обгона 3 обгоняет 2: порядок становится [3, 2, 1]
  4. Сообщение 1 2:

    • Порядок до обгона: [3, 2, 1]
    • После обгона 1 обгоняет 2: порядок становится [3, 1, 2]

Выводим окончательный порядок:

3 1 2

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

avatar
ответил месяц назад

Ваш ответ

Вопросы по теме