CF350B.Resort
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Valera's finally decided to go on holiday! He packed up and headed for a ski resort.
Valera's fancied a ski trip but he soon realized that he could get lost in this new place. Somebody gave him a useful hint: the resort has n objects (we will consider the objects indexed in some way by integers from 1 to n ), each object is either a hotel or a mountain.
Valera has also found out that the ski resort had multiple ski tracks. Specifically, for each object v , the resort has at most one object u , such that there is a ski track built from object u to object v . We also know that no hotel has got a ski track leading from the hotel to some object.
Valera is afraid of getting lost on the resort. So he wants you to come up with a path he would walk along. The path must consist of objects v1,v2,...,vk ( k>=1 ) and meet the following conditions:
- Objects with numbers v1,v2,...,vk−1 are mountains and the object with number vk is the hotel.
- For any integer i (1<=i<k) , there is exactly one ski track leading from object vi . This track goes to object vi+1 .
- The path contains as many objects as possible ( k is maximal).
Help Valera. Find such path that meets all the criteria of our hero!
输入格式
The first line contains integer n ( 1<=n<=105 ) — the number of objects.
The second line contains n space-separated integers type1,type2,...,typen — the types of the objects. If typei equals zero, then the i -th object is the mountain. If typei equals one, then the i -th object is the hotel. It is guaranteed that at least one object is a hotel.
The third line of the input contains n space-separated integers a1,a2,...,an ( 0<=ai<=n ) — the description of the ski tracks. If number ai equals zero, then there is no such object v , that has a ski track built from v to i . If number ai doesn't equal zero, that means that there is a track built from object ai to object i .
输出格式
In the first line print k — the maximum possible path length for Valera. In the second line print k integers v1,v2,...,vk — the path. If there are multiple solutions, you can print any of them.
输入输出样例
输入#1
5 0 0 0 0 1 0 1 2 3 4
输出#1
5 1 2 3 4 5
输入#2
5 0 0 1 0 1 0 1 2 2 4
输出#2
2 4 5
输入#3
4 1 0 0 0 2 3 4 2
输出#3
1 1