U531088 静态树链点权第 k 小

题目背景

这是一道水题。 实在没想到谷上有[原题](https://www.luogu.com.cn/problem/P2633)哈,但本题数据更加残酷,请以 $O(\log n)$ 的时间复杂度完成每一次查询。

题目描述

给定一颗带点权的树,进行 $q$ 询问,求结点 $u$ 到结点 $v$ 所经最短路径形成的序列中第 $k$ 小的数。

输入格式

第一行一个整数 $n$ 表示结点数。 第二行有 $n$ 个整数表示每个结点最初的点权。 第三行有 $n$ 个整数表示每个结点的父结点,若为 $0$ 则表示根结点。 第四行为一个整数 $q$ 表示查询次数。 接下来的 $q$ 行每行三个整数 $u,v,k$ 表示一次查询,含义如题所述。

输出格式

共 $q$ 行,每行一个整数表示答案。

说明/提示

所有数据满足:$1\le n \le 10^5,1\le q \le 2\times 10^6$,保证所有点权在 int 范围内。