晋升者

成绩 100 开启时间 2020年06月18日 星期四 11:00
折扣 0.8 折扣时间 2020年06月18日 星期四 11:00
允许迟交 关闭时间 2020年06月18日 星期四 11:00
输入文件 promotion.in 输出文件 promotion.out

【题目描述】晋升者(promotion)BZOJ 4756

一个由编号为1~N(1≤N≤100 000)的N个魔法师组成的组织,其组织结构可以看成是一棵树,1号魔法师作为总裁,是这棵树的根结点。除了总裁以外的每个魔法师都有一个单独的上司(他在树上的 “双亲结点”)。所有的第 i 个魔法师都有一个不同的能力指数p(i),描述了他对其工作的擅长程度。如果魔法师i是魔法师j的祖先结点(例如上司的上司),那么我们我们把魔法师j叫作魔法师 i的下属。

可以想象的是,魔法师们发现经常发生一个上司比他的一些下属能力低的情况,在这种情况下,上司应当考虑晋升他的一些下属。你的任务是帮助他弄清楚具体情况,简而言之,对于公司中的每一个魔法师i,请计算其下属j的数量满足p(j)>p(i)。

【输入格式】

输入的第一行包括一个整数 N。

接下来的 N行包括魔法师们的能力指数 p(1)~p(N),保证所有数互不相同,数据范围在区间1~ 109 之间。

接下来的N−1 行描述了2 ~N号魔法师上司(双亲结点)的编号。再次提醒,1号魔法师作为总裁,没有上司。

【输出格式】

输出包括 N 行。输出的第 i 行应当给出有多少魔法师i的下属比魔法师i能力高。

【输入样例】

5

804289384

846930887

681692778

714636916

957747794

1

1

2

3

【输出样例】

2

0

1

0

0