#agc023f. [agc023_f]01 on Tree
[agc023_f]01 on Tree
题目描述
Snuke 有一个带有 个顶点的根树,顶点编号为 到 。顶点 是树的根节点,顶点 ()的父节点是顶点 ()。每个顶点上都写有数字 或 ,顶点 上写有数字 。
Snuke 想要将这棵树的顶点按水平方向排列。在这里,对于每个顶点,该顶点的所有祖先都不应出现在该顶点的右边。
排列完成后,设 为按照排列从左到右读取顶点上的数字所得到的序列。Snuke 希望使 的逆序数最小。求 的最小可能逆序数。
注解
长度为 的序列 的_逆序数_是对于所有整数对 (),满足 的个数。
约束条件
- ()
- ()
- 输入中的所有值都是整数。
输入格式
从标准输入读入数据,格式如下:
输出格式
输出 的最小可能逆序数。
示例输入 1
6
1 1 2 3 3
0 1 1 0 0 0
示例输出 1
4
当顶点按照 的顺序排列时, 的序列为 ,其逆序数为 。不可能存在更少的逆序数,因此答案为 。
示例输入 2
1
0
示例输出 2
0
,其逆序数为 。
示例输入 3
15
1 2 3 2 5 6 2 2 9 10 1 12 13 12
1 1 1 0 1 1 0 0 1 0 0 1 1 0 0
示例输出 3
31