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 nn objects (we will consider the objects indexed in some way by integers from 11 to nn ), 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 vv , the resort has at most one object uu , such that there is a ski track built from object uu to object vv . 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,...,vkv_{1},v_{2},...,v_{k} ( k>=1k>=1 ) and meet the following conditions:

  1. Objects with numbers v1,v2,...,vk1v_{1},v_{2},...,v_{k-1} are mountains and the object with number vkv_{k} is the hotel.
  2. For any integer ii (1<=i<k) , there is exactly one ski track leading from object viv_{i} . This track goes to object vi+1v_{i+1} .
  3. The path contains as many objects as possible ( kk is maximal).

Help Valera. Find such path that meets all the criteria of our hero!

输入格式

The first line contains integer nn ( 1<=n<=1051<=n<=10^{5} ) — the number of objects.

The second line contains nn space-separated integers type1,type2,...,typentype_{1},type_{2},...,type_{n} — the types of the objects. If typeitype_{i} equals zero, then the ii -th object is the mountain. If typeitype_{i} equals one, then the ii -th object is the hotel. It is guaranteed that at least one object is a hotel.

The third line of the input contains nn space-separated integers a1,a2,...,ana_{1},a_{2},...,a_{n} ( 0<=ai<=n0<=a_{i}<=n ) — the description of the ski tracks. If number aia_{i} equals zero, then there is no such object vv , that has a ski track built from vv to ii . If number aia_{i} doesn't equal zero, that means that there is a track built from object aia_{i} to object ii .

输出格式

In the first line print kk — the maximum possible path length for Valera. In the second line print kk integers v1,v2,...,vkv_{1},v_{2},...,v_{k} — 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
    
首页