Ctrl K

Палеты после переездов

Средняя
На складе ячейки пронумерованы целыми числами. Массив pallets хранит номера ячеек, где изначально стоят палеты; в одной ячейке может стоять несколько палет. Дальше по очереди выполняются переносы. На шаге i погрузчик забирает **все** палеты из ячейки from_cells[i] и ставит их в ячейку to_cells[i]. Гарантируется, что в момент шага в ячейке from_cells[i] есть хотя бы одна палета. Верните номера ячеек, в которых после всех переносов стоит хотя бы одна палета, по возрастанию.
Пример 1
pallets=[3, 8, 8, 12], from_cells=[8, 3, 20], to_cells=[20, 12, 4] → [4, 12]

Обе палеты из ячейки 8 уезжают в 20, палета из 3 — в 12, затем обе из 20 — в 4. Заняты ячейки 4 и 12.

Пример 2
pallets=[5, 6], from_cells=[5, 6], to_cells=[6, 5] → [5]

Сначала всё собирается в ячейке 6, затем всё оттуда переезжает в 5.

Пример 3
pallets=[7], from_cells=[7], to_cells=[7] → [7]

Перенос в ту же ячейку ничего не меняет.

Ограничения
  • 1 ≤ len(pallets) ≤ 10⁵
  • 1 ≤ len(from_cells) = len(to_cells) ≤ 10⁵
  • 1 ≤ pallets[i], from_cells[i], to_cells[i] ≤ 10⁹
  • В момент шага i ячейка from_cells[i] не пуста
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВычёркивание с самого маленького СредняяОстаток на полке после заказов СредняяЦепочка удвоений ЛёгкаяРазобрать стопки поровну ЛёгкаяСамая загруженная переговорка Сложная
загружаем Python…
Вход
pallets=[3, 8, 8, 12], from_cells=[8, 3, 20], to_cells=[20, 12, 4]
Ожидается
[4, 12]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 100 тестов на сервере, включая скрытые.