Codeforces Round 203 (Div. 2)
B
Resort
Codeforces
1500
原题
← AC →
翻译中…

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 $*v*_{1}, *v*_{2}, ..., *v*_{*k*}$ ($*k* ≥ 1$) and meet the following conditions:

翻译中…
  1. Objects with numbers $*v*_{1}, *v*_{2}, ..., *v*_{*k* - 1}$ are mountains and the object with number $*v*_{*k*}$ is the hotel.
  2. For any integer $*i*$ $(1 ≤ *i* < *k*)$, there is exactly one ski track leading from object $*v*_{*i*}$. This track goes to object $*v*_{*i* + 1}$.
  3. The path contains as many objects as possible ($*k*$ is maximal).
翻译中…

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

翻译中…

Input

翻译中…

The first line contains integer $*n*$ ($1 ≤ *n* ≤ 10^{5}$) — the number of objects.

翻译中…

The second line contains $*n*$ space-separated integers $*type*_{1}, *type*_{2}, ..., *type*_{*n*}$ — the types of the objects. If $*type*_{*i*}$ equals zero, then the $*i*$-th object is the mountain. If $*type*_{*i*}$ 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 $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$ ($0 ≤ *a*_{*i*} ≤ *n*$) — the description of the ski tracks. If number $*a*_{*i*}$ equals zero, then there is no such object $*v*$, that has a ski track built from $*v*$ to $*i*$. If number $*a*_{*i*}$ doesn't equal zero, that means that there is a track built from object $*a*_{*i*}$ to object $*i*$.

翻译中…

Output

翻译中…

In the first line print $*k*$ — the maximum possible path length for Valera. In the second line print $*k*$ integers $*v*_{1}, *v*_{2}, ..., *v*_{*k*}$ — the path. If there are multiple solutions, you can print any of them.

翻译中…

样例

Input #1
5
0 0 0 0 1
0 1 2 3 4
Output #1
5
1 2 3 4 5
InputCopy OutputCopy
Input #2
5
0 0 1 0 1
0 1 2 2 4
Output #2
2
4 5
InputCopy OutputCopy
Input #3
4
1 0 0 0
2 3 4 2
Output #3
1
1
InputCopy OutputCopy
题目信息
题号
350B
时间限制
2 s
内存限制
256 MB
标签
图论

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。