Skip to content

Latest commit

 

History

History

341.Палеты

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
  1. Палеты
средняяimplementationdata structuresfirst_2023_backend

Поставки товаров прибывают в распределительный центр, хранятся там и затем отправляются на склады. Каждая поставка состоит из множества палет и коробок (возможно, пустого). Все палеты и коробки имеют deliveryiddeliveryid​ — идентификатор поставки.

Палеты и коробки имеют поле parentidparentid​ — это идентификатор палеты или коробки, в которую вложена данная. Если parentid=0parentid​=0, то это палета, иначе — коробка. Отправлять на склад можно только палеты. Чтобы палеты и коробки можно было отправить на склад, должны выполняться следующие условия:

Коробку, не размещённую в палете или другой коробке, отправлять нельзя;
Если существует коробка, которая ещё не пришла от поставщиков или которую нельзя отправить, то нельзя отправить на склад и коробку или палету, в которую она вложена.

Зная, что в данный момент прибыли только поставки с определенными номерами, определите, какие палеты возможно отправить на склад уже сейчас. Формат ввода

В первой строке задано одно целое число n (1≤n≤106) — общее количество палет и коробок.

Во второй строке записано nn целых чисел deliveryid​ (1≤deliveryid​≤109) — идентификаторы поставки.

В третьей строке записано nn целых чисел parentid​ (0≤parentid​≤n) — номера коробок, в которые должна быть вложена палета или другая коробка. Коробка не может быть вложена сама в себя (в том числе через другие коробки). Если parentid​=0, то это палета и её никуда класть не нужно.

В четвертой строке задано единственное целое число k (0≤k≤n) — количество поставок, которые ещё не приехали в распределительный центр.

При k≥1 в последней строке записано k целых чисел ai​ (1≤ai​≤109) — идентификаторы поставок, палеты и коробки из которых не были доставлены в распределительный центр. Гарантируется, что хотя бы одна палета или коробка имела такой идентификатор ai​.

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

В первой строке выведите одно целое число m — количество палет, которые можно отправить на склад.

Во второй строке выведите номера палет от меньшего к большему.

Решение