问题描述
ZJiaQ在遭到地主小花的长期压迫之后,终于不堪其辱,收拾行李投奔了军营。然而,小花在军营里也有后台。为了继续欺负ZJiaQ,小花决定收买一部分士兵来欺负ZJiaQ(肥皂?)。ZJiaQ为了自己的清白,只好贿赂长官来摆平这些士兵。贿赂一次只能摆平一个士兵。
为了方便,每次小花都收买编号连续的一群人。而ZJiaQ只能通过收买他们的长官来摆平他们。当ZJiaQ需要收买一个长官来摆平一名士兵的时候,这位长官必须是ZJiaQ与这名士兵的共同长官。当然ZJiaQ的长官的长官也属于ZJiaQ的长官。如果是ZJiaQ的下属,那么ZJiaQ自己便可以摆平。
由于军营里的人员接触比较严格,ZJiaQ如果想要把贿赂金交给他的长官的长官,必须经由他的长官。并且每经由一人会被吃一次回扣,一次回扣一块钱。ZJiaQ希望花更少的钱来摆平这事。
输入描述
输入有多组数据,每组数据第一行输入一个n(3< =n< =40000),表示军营中有n个人,编号从0到n-1,接下来一行有n个整数a0,a2...an-1,ai(1<=ai< =100000)表示贿赂第i个需要花的钱,接下来一行有n-1个整数,b1,b2...bn-1,bi(0< = bi < n),bi表示第i个人的直接上级,0号是总长官,没有上级。
然后输入一个m (1 < = m < = 40000) 表示小花买通士兵的次数。接下来有m行,每行有三个整数l,r,p(0 < l,r,p < n,l < = r,p < l 或者 p > r)表示小花收买了编号从l到r的士兵,而ZJiaQ的编号是p。
输出描述
输出m行,表示每次ZJiaQ的最小花费。答案mod上10000007
输入样例
3
2 2 2
0 0
2
1 1 2
2 2 1
10
52 30 56 13 98 53 75 80 7 34
3 0 0 3 2 2 9 1 0
5
2 9 1
5 5 8
2 2 1
2 6 7
2 7 1
输出样例
2
2
332
54
53
265
279