OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题1287--BST 插入节点问题

1287: BST 插入节点问题

时间限制: 1 Sec  内存限制: 128 MB
提交: 10  解决: 5
[提交] [状态] [讨论版] [命题人:]

题目描述

给定一棵包含N 个节点的二叉树,节点编号是1 N。其中i 号节点具有权值Wi,并且这些节点的权值恰好形成了一棵排序二叉树(BST)。
现在给定一个节点编号K,小明想知道,在这N 个权值以外,有多少个整数X (即X 不等于任何Wi ) 满足:给编号为K 的节点增加一个权值为X 的子节点,仍可以得到一棵BST。
例如在下图中,括号外的数字表示编号、括号内的数字表示权值。即编号1 - 4 的节点权值依次是0、10、20、30


如果K = 1,那么答案为0。因为1 号节点已经有左右子节点,不能再增加子节点了。
如果K = 2,那么答案为无穷多。因为任何一个负数都可以作为2 的左子节点。
如果K = 3,那么答案为9。因为X = 11,12.... 19 都可以作为3 的左子节点。

输入

第一行包含2 个整数N 和K。
以下N 行每行包含2 个整数,其中第i 行是编号为i 的节点的父节点编号Pi 和权值Wi 。注意Pi = 0 表示i 是根节点。
输入保证是一棵BST。

输出

一个整数代表答案。如果答案是无穷多,输出-1。

样例输入 Copy

4 3
0 10
1 0
1 20
3 30

样例输出 Copy

9

提示

对于60% 的评测用例,1<=K<=N<=100,0<=Wi<=200,且Wi 各不相同。
对于所有评测用例,1<=K<=N<=10000,0<=Wi<=100000000,且Wi 各不相同。

来源/分类