CF725G Messages on a Tree
题目描述
有一棵编号为$0$~$n$的树,$0$为根节点
在一些时刻,某一些节点会向根节点发送信息并开始等待收到根节点的回复,**这些节点被称作发送者**,向根节点发送信息的过程是将信息沿着父节点不断向上传递,**经过的节点都将开始等待根节点的回复**,根节点收到信息后立刻回复,回复的过程是逆着刚才的路径向下传递直至传递回发送信息的节点。
但在这一过程中,如果向上传递信息时遇到的某一个节点本身正在等待根节点的回复,那么这个节点会拒绝向上传递并直接向下回复一个终止的信息,这一向下的过程与从根节点向下回复的过程相同。
父子节点之间传递信息的过程需要花费$1$单位时间
如果一个节点同时收到了很多来自子节点的信息,那么这个节点只处理来自编号最小的**发送者**(不是子节点!!!),然后拒绝剩余的所有信息
如果一个节点同时收到了来自子节点的信息和来自父节点的回复,那么向下传递回复和向上传递信息的过程可以同时进行
如果一个节点在等待的过程中自己成为了发送者,那么这条信息被立刻拒绝,所用时间是$0$
输入格式
第一行两个整数$n$,$m$,表示节点编号和发送信息次数
接下来一行$n$个整数,第$i$个整数表示节点$i$的父节点
接下来$m$行,每行两个整数,分别表示信息的发送者的编号和发送的时刻,保证给出的时刻单调不降
输出格式
一行$m$个整数,表示每次发送信息收到回复的**时间点**
说明/提示
In the first example the first message is initiated at the moment $ 6 $ , reaches Bob at the moment $ 10 $ , and the answer reaches the initiator at the moment $ 14 $ . The second message reaches vertex $ 2 $ at the moment $ 11 $ . At this moment the copy of Alice in this vertex is still waiting for the answer for the first message, so she rejects the second message. The answer reaches the initiator at the moment $ 13 $ . The third message is not sent at all, because at the moment $ 11 $ Alice in vertex $ 5 $ is waiting for the answer for the second message.
In the second example the first message reaches Bob, the second is rejected by Alice in vertex $ 1 $ . This is because the message with smaller initiator number has the priority.
In the third example the first and the third messages reach Bob, while the second message is rejected by Alice in vertex $ 3 $ .