Codeforces Round 203 (Div. 2) |
---|
Закончено |
Валера наконец-то решил отдохнуть! Он собрал все свои вещи и отправился на горнолыжный курорт.
Валера решил прокатиться на лыжах, однако понял, что плохо ориентируется на местности. Ему подсказали, что на курорте есть n объектов (будем считать, что объекты пронумерованы некоторым образом числами от 1 до n), и каждый из объектов является либо отелем, либо горой.
Валера разузнал, что на горнолыжном курорте построено несколько лыжных дорожек. А именно, для каждого объекта v на курорте существует не более одного объекта u такого, что из объекта u построена лыжная дорожка, ведущая в объект v. Известно, что не существует такого отеля, из которого построена лыжная дорожка, ведущая в некоторый объект.
Валера боится потеряться на курорте, поэтому он хочет, чтобы Вы предложили для его лыжной прогулки маршрут из объектов v1, v2, ..., vk (k ≥ 1) такой, что:
Помогите Валере. Найдите такой маршрут, который удовлетворит всем критериям нашего героя!
В первой строке записано целое число n (1 ≤ n ≤ 105) — количество объектов.
Во второй строке записаны n целых чисел через пробел type1, type2, ..., typen — тип объекта с номером i. Если typei равно нулю, то i-ый объект является горой. Если typei равно единице, то i-ый объект является отелем. Гарантируется, что хотя бы один объект является отелем.
В третьей строке входных данных записано n целых чисел через пробел a1, a2, ..., an (0 ≤ ai ≤ n) — описание лыжных дорожек. Если число ai равно нулю, это означает, что не существует такого объекта v такого, что из v в i построена лыжная дорожка. Если число ai не равно нулю, это означает, что из объекта с номером ai построена дорожка в объект i.
В первой строке выведите k — максимальную возможную длину маршрута для Валеры. Во второй строке выведите k целых чисел v1, v2, ..., vk — сам маршрут.
Если существует несколько решений, разрешается вывести любое.
5
0 0 0 0 1
0 1 2 3 4
5
1 2 3 4 5
5
0 0 1 0 1
0 1 2 2 4
2
4 5
4
1 0 0 0
2 3 4 2
1
1
Название |
---|