目录

一、二叉搜索树简介 - 小结

二、数据流中的第K大元素

2.1 题目要求

2.2 解决过程

三、二叉搜索树的最近公共祖先

3.1 题目要求

3.2 解决过程

四、存在重复元素 III

4.1 题目要求

4.2 解决过程


一、二叉搜索树简介 - 小结

参考文献:https://leetcode-cn.com/leetbook/read/introduction-to-data-structure-binary-search-tree/xpbmwd/


二、数据流中的第K大元素

2.1 题目要求

2.2 解决过程

测试用例

["KthLargest","add","add","add","add","add"]
[[3,[4,5,8,2]],[3],[5],[10],[9],[4]]
["KthLargest","add","add","add","add","add"]
[[1,[]],[-3],[-2],[-4],[0],[4]]
["KthLargest","add","add","add","add","add"]
[[1,[-2]],[-3],[0],[2],[-1],[4]]
["KthLargest","add","add","add","add","add"]
[[2,[0]],[-1],[1],[-2],[-4],[3]]
["KthLargest","add","add","add","add","add"]
[[3,[5, -1]],[2],[1],[-1],[3],[4]]
["KthLargest","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add"]
[[1,[]],[4999],[4998],[4997],[4996],[4995],[4994],[4993],[4992],[4991],[4990],[4989],[4988],[4987],[4986],[4985],[4984],[4983],[4982],[4981],[4980],[4979],[4978],[4977],[4976],[4975],[4974],[4973],[4972],[4971],[4970],[4969],[4968],[4967],[4966],[4965],[4964],[4963],[4962],[4961],[4960],[4959],[4958],[4957],[4956],[4955],[4954],[4953],[4952],[4951],[4950],[4949],[4948],[4947],[4946],[4945],[4944],[4943],[4942],[4941],[4940],[4939],[4938],[4937],[4936],[4935],[4934],[4933],[4932],[4931],[4930],[4929],[4928],[4927],[4926],[4925],[4924],[4923],[4922],[4921],[4920],[4919],[4918],[4917],[4916],[4915],[4914],[4913],[4912],[4911],[4910],[4909],[4908],[4907],[4906],[4905],[4904],[4903],[4902],[4901],[4900],[4899],[4898],[4897],[4896],[4895],[4894],[4893],[4892],[4891],[4890],[4889],[4888],[4887],[4886],[4885],[4884],[4883],[4882],[4881],[4880],[4879],[4878],[4877],[4876],[4875],[4874],[4873],[4872],[4871],[4870],[4869],[4868],[4867],[4866],[4865],[4864],[4863],[4862],[4861],[4860],[4859],[4858],[4857],[4856],[4855],[4854],[4853],[4852],[4851],[4850],[4849],[4848],[4847],[4846],[4845],[4844],[4843],[4842],[4841],[4840],[4839],[4838],[4837],[4836],[4835],[4834],[4833],[4832],[4831],[4830],[4829],[4828],[4827],[4826],[4825],[4824],[4823],[4822],[4821],[4820],[4819],[4818],[4817],[4816],[4815],[4814],[4813],[4812],[4811],[4810],[4809],[4808],[4807],[4806],[4805],[4804],[4803],[4802],[4801],[4800],[4799],[4798],[4797],[4796],[4795],[4794],[4793],[4792],[4791],[4790],[4789],[4788],[4787],[4786],[4785],[4784],[4783],[4782],[4781],[4780],[4779],[4778],[4777],[4776],[4775],[4774],[4773],[4772],[4771],[4770],[4769],[4768],[4767],[4766],[4765],[4764],[4763],[4762],[4761],[4760],[4759],[4758],[4757],[4756],[4755],[4754],[4753],[4752],[4751],[4750],[4749],[4748],[4747],[4746],[4745],[4744],[4743],[4742],[4741],[4740],[4739],[4738],[4737],[4736],[4735],[4734],[4733],[4732],[4731],[4730],[4729],[4728],[4727],[4726],[4725],[4724],[4723],[4722],[4721],[4720],[4719],[4718],[4717],[4716],[4715],[4714],[4713],[4712],[4711],[4710],[4709],[4708],[4707],[4706],[4705],[4704],[4703],[4702],[4701],[4700],[4699],[4698],[4697],[4696],[4695],[4694],[4693],[4692],[4691],[4690],[4689],[4688],[4687],[4686],[4685],[4684],[4683],[4682],[4681],[4680],[4679],[4678],[4677],[4676],[4675],[4674],[4673],[4672],[4671],[4670],[4669],[4668],[4667],[4666],[4665],[4664],[4663],[4662],[4661],[4660],[4659],[4658],[4657],[4656],[4655],[4654],[4653],[4652],[4651],[4650],[4649],[4648],[4647],[4646],[4645],[4644],[4643],[4642],[4641],[4640],[4639],[4638],[4637],[4636],[4635],[4634],[4633],[4632],[4631],[4630],[4629],[4628],[4627],[4626],[4625],[4624],[4623],[4622],[4621],[4620],[4619],[4618],[4617],[4616],[4615],[4614],[4613],[4612],[4611],[4610],[4609],[4608],[4607],[4606],[4605],[4604],[4603],[4602],[4601],[4600],[4599],[4598],[4597],[4596],[4595],[4594],[4593],[4592],[4591],[4590],[4589],[4588],[4587],[4586],[4585],[4584],[4583],[4582],[4581],[4580],[4579],[4578],[4577],[4576],[4575],[4574],[4573],[4572],[4571],[4570],[4569],[4568],[4567],[4566],[4565],[4564],[4563],[4562],[4561],[4560],[4559],[4558],[4557],[4556],[4555],[4554],[4553],[4552],[4551],[4550],[4549],[4548],[4547],[4546],[4545],[4544],[4543],[4542],[4541],[4540],[4539],[4538],[4537],[4536],[4535],[4534],[4533],[4532],[4531],[4530],[4529],[4528],[4527],[4526],[4525],[4524],[4523],[4522],[4521],[4520],[4519],[4518],[4517],[4516],[4515],[4514],[4513],[4512],[4511],[4510],[4509],[4508],[4507],[4506],[4505],[4504],[4503],[4502],[4501],[4500],[4499],[4498],[4497],[4496],[4495],[4494],[4493],[4492],[4491],[4490],[4489],[4488],[4487],[4486],[4485],[4484],[4483],[4482],[4481],[4480],[4479],[4478],[4477],[4476],[4475],[4474],[4473],[4472],[4471],[4470],[4469],[4468],[4467],[4466],[4465],[4464],[4463],[4462],[4461],[4460],[4459],[4458],[4457],[4456],[4455],[4454],[4453],[4452],[4451],[4450],[4449],[4448],[4447],[4446],[4445],[4444],[4443],[4442],[4441],[4440],[4439],[4438],[4437],[4436],[4435],[4434],[4433],[4432],[4431],[4430],[4429],[4428],[4427],[4426],[4425],[4424],[4423],[4422],[4421],[4420],[4419],[4418],[4417],[4416],[4415],[4414],[4413],[4412],[4411],[4410],[4409],[4408],[4407],[4406],[4405],[4404],[4403],[4402],[4401],[4400],[4399],[4398],[4397],[4396],[4395],[4394],[4393],[4392],[4391],[4390],[4389],[4388],[4387],[4386],[4385],[4384],[4383],[4382],[4381],[4380],[4379],[4378],[4377],[4376],[4375],[4374],[4373],[4372],[4371],[4370],[4369],[4368],[4367],[4366],[4365],[4364],[4363],[4362],[4361],[4360],[4359],[4358],[4357],[4356],[4355],[4354],[4353],[4352],[4351],[4350],[4349],[4348],[4347],[4346],[4345],[4344],[4343],[4342],[4341],[4340],[4339],[4338],[4337],[4336],[4335],[4334],[4333],[4332],[4331],[4330],[4329],[4328],[4327],[4326],[4325],[4324],[4323],[4322],[4321],[4320],[4319],[4318],[4317],[4316],[4315],[4314],[4313],[4312],[4311],[4310],[4309],[4308],[4307],[4306],[4305],[4304],[4303],[4302],[4301],[4300],[4299],[4298],[4297],[4296],[4295],[4294],[4293],[4292],[4291],[4290],[4289],[4288],[4287],[4286],[4285],[4284],[4283],[4282],[4281],[4280],[4279],[4278],[4277],[4276],[4275],[4274],[4273],[4272],[4271],[4270],[4269],[4268],[4267],[4266],[4265],[4264],[4263],[4262],[4261],[4260],[4259],[4258],[4257],[4256],[4255],[4254],[4253],[4252],[4251],[4250],[4249],[4248],[4247],[4246],[4245],[4244],[4243],[4242],[4241],[4240],[4239],[4238],[4237],[4236],[4235],[4234],[4233],[4232],[4231],[4230],[4229],[4228],[4227],[4226],[4225],[4224],[4223],[4222],[4221],[4220],[4219],[4218],[4217],[4216],[4215],[4214],[4213],[4212],[4211],[4210],[4209],[4208],[4207],[4206],[4205],[4204],[4203],[4202],[4201],[4200],[4199],[4198],[4197],[4196],[4195],[4194],[4193],[4192],[4191],[4190],[4189],[4188],[4187],[4186],[4185],[4184],[4183],[4182],[4181],[4180],[4179],[4178],[4177],[4176],[4175],[4174],[4173],[4172],[4171],[4170],[4169],[4168],[4167],[4166],[4165],[4164],[4163],[4162],[4161],[4160],[4159],[4158],[4157],[4156],[4155],[4154],[4153],[4152],[4151],[4150],[4149],[4148],[4147],[4146],[4145],[4144],[4143],[4142],[4141],[4140],[4139],[4138],[4137],[4136],[4135],[4134],[4133],[4132],[4131],[4130],[4129],[4128],[4127],[4126],[4125],[4124],[4123],[4122],[4121],[4120],[4119],[4118],[4117],[4116],[4115],[4114],[4113],[4112],[4111],[4110],[4109],[4108],[4107],[4106],[4105],[4104],[4103],[4102],[4101],[4100],[4099],[4098],[4097],[4096],[4095],[4094],[4093],[4092],[4091],[4090],[4089],[4088],[4087],[4086],[4085],[4084],[4083],[4082],[4081],[4080],[4079],[4078],[4077],[4076],[4075],[4074],[4073],[4072],[4071],[4070],[4069],[4068],[4067],[4066],[4065],[4064],[4063],[4062],[4061],[4060],[4059],[4058],[4057],[4056],[4055],[4054],[4053],[4052],[4051],[4050],[4049],[4048],[4047],[4046],[4045],[4044],[4043],[4042],[4041],[4040],[4039],[4038],[4037],[4036],[4035],[4034],[4033],[4032],[4031],[4030],[4029],[4028],[4027],[4026],[4025],[4024],[4023],[4022],[4021],[4020],[4019],[4018],[4017],[4016],[4015],[4014],[4013],[4012],[4011],[4010],[4009],[4008],[4007],[4006],[4005],[4004],[4003],[4002],[4001],[4000],[3999],[3998],[3997],[3996],[3995],[3994],[3993],[3992],[3991],[3990],[3989],[3988],[3987],[3986],[3985],[3984],[3983],[3982],[3981],[3980],[3979],[3978],[3977],[3976],[3975],[3974],[3973],[3972],[3971],[3970],[3969],[3968],[3967],[3966],[3965],[3964],[3963],[3962],[3961],[3960],[3959],[3958],[3957],[3956],[3955],[3954],[3953],[3952],[3951],[3950],[3949],[3948],[3947],[3946],[3945],[3944],[3943],[3942],[3941],[3940],[3939],[3938],[3937],[3936],[3935],[3934],[3933],[3932],[3931],[3930],[3929],[3928],[3927],[3926],[3925],[3924],[3923],[3922],[3921],[3920],[3919],[3918],[3917],[3916],[3915],[3914],[3913],[3912],[3911],[3910],[3909],[3908],[3907],[3906],[3905],[3904],[3903],[3902],[3901],[3900],[3899],[3898],[3897],[3896],[3895],[3894],[3893],[3892],[3891],[3890],[3889],[3888],[3887],[3886],[3885],[3884],[3883],[3882],[3881],[3880],[3879],[3878],[3877],[3876],[3875],[3874],[3873],[3872],[3871],[3870],[3869],[3868],[3867],[3866],[3865],[3864],[3863],[3862],[3861],[3860],[3859],[3858],[3857],[3856],[3855],[3854],[3853],[3852],[3851],[3850],[3849],[3848],[3847],[3846],[3845],[3844],[3843],[3842],[3841],[3840],[3839],[3838],[3837],[3836],[3835],[3834],[3833],[3832],[3831],[3830],[3829],[3828],[3827],[3826],[3825],[3824],[3823],[3822],[3821],[3820],[3819],[3818],[3817],[3816],[3815],[3814],[3813],[3812],[3811],[3810],[3809],[3808],[3807],[3806],[3805],[3804],[3803],[3802],[3801],[3800],[3799],[3798],[3797],[3796],[3795],[3794],[3793],[3792],[3791],[3790],[3789],[3788],[3787],[3786],[3785],[3784],[3783],[3782],[3781],[3780],[3779],[3778],[3777],[3776],[3775],[3774],[3773],[3772],[3771],[3770],[3769],[3768],[3767],[3766],[3765],[3764],[3763],[3762],[3761],[3760],[3759],[3758],[3757],[3756],[3755],[3754],[3753],[3752],[3751],[3750],[3749],[3748],[3747],[3746],[3745],[3744],[3743],[3742],[3741],[3740],[3739],[3738],[3737],[3736],[3735],[3734],[3733],[3732],[3731],[3730],[3729],[3728],[3727],[3726],[3725],[3724],[3723],[3722],[3721],[3720],[3719],[3718],[3717],[3716],[3715],[3714],[3713],[3712],[3711],[3710],[3709],[3708],[3707],[3706],[3705],[3704],[3703],[3702],[3701],[3700],[3699],[3698],[3697],[3696],[3695],[3694],[3693],[3692],[3691],[3690],[3689],[3688],[3687],[3686],[3685],[3684],[3683],[3682],[3681],[3680],[3679],[3678],[3677],[3676],[3675],[3674],[3673],[3672],[3671],[3670],[3669],[3668],[3667],[3666],[3665],[3664],[3663],[3662],[3661],[3660],[3659],[3658],[3657],[3656],[3655],[3654],[3653],[3652],[3651],[3650],[3649],[3648],[3647],[3646],[3645],[3644],[3643],[3642],[3641],[3640],[3639],[3638],[3637],[3636],[3635],[3634],[3633],[3632],[3631],[3630],[3629],[3628],[3627],[3626],[3625],[3624],[3623],[3622],[3621],[3620],[3619],[3618],[3617],[3616],[3615],[3614],[3613],[3612],[3611],[3610],[3609],[3608],[3607],[3606],[3605],[3604],[3603],[3602],[3601],[3600],[3599],[3598],[3597],[3596],[3595],[3594],[3593],[3592],[3591],[3590],[3589],[3588],[3587],[3586],[3585],[3584],[3583],[3582],[3581],[3580],[3579],[3578],[3577],[3576],[3575],[3574],[3573],[3572],[3571],[3570],[3569],[3568],[3567],[3566],[3565],[3564],[3563],[3562],[3561],[3560],[3559],[3558],[3557],[3556],[3555],[3554],[3553],[3552],[3551],[3550],[3549],[3548],[3547],[3546],[3545],[3544],[3543],[3542],[3541],[3540],[3539],[3538],[3537],[3536],[3535],[3534],[3533],[3532],[3531],[3530],[3529],[3528],[3527],[3526],[3525],[3524],[3523],[3522],[3521],[3520],[3519],[3518],[3517],[3516],[3515],[3514],[3513],[3512],[3511],[3510],[3509],[3508],[3507],[3506],[3505],[3504],[3503],[3502],[3501],[3500],[3499],[3498],[3497],[3496],[3495],[3494],[3493],[3492],[3491],[3490],[3489],[3488],[3487],[3486],[3485],[3484],[3483],[3482],[3481],[3480],[3479],[3478],[3477],[3476],[3475],[3474],[3473],[3472],[3471],[3470],[3469],[3468],[3467],[3466],[3465],[3464],[3463],[3462],[3461],[3460],[3459],[3458],[3457],[3456],[3455],[3454],[3453],[3452],[3451],[3450],[3449],[3448],[3447],[3446],[3445],[3444],[3443],[3442],[3441],[3440],[3439],[3438],[3437],[3436],[3435],[3434],[3433],[3432],[3431],[3430],[3429],[3428],[3427],[3426],[3425],[3424],[3423],[3422],[3421],[3420],[3419],[3418],[3417],[3416],[3415],[3414],[3413],[3412],[3411],[3410],[3409],[3408],[3407],[3406],[3405],[3404],[3403],[3402],[3401],[3400],[3399],[3398],[3397],[3396],[3395],[3394],[3393],[3392],[3391],[3390],[3389],[3388],[3387],[3386],[3385],[3384],[3383],[3382],[3381],[3380],[3379],[3378],[3377],[3376],[3375],[3374],[3373],[3372],[3371],[3370],[3369],[3368],[3367],[3366],[3365],[3364],[3363],[3362],[3361],[3360],[3359],[3358],[3357],[3356],[3355],[3354],[3353],[3352],[3351],[3350],[3349],[3348],[3347],[3346],[3345],[3344],[3343],[3342],[3341],[3340],[3339],[3338],[3337],[3336],[3335],[3334],[3333],[3332],[3331],[3330],[3329],[3328],[3327],[3326],[3325],[3324],[3323],[3322],[3321],[3320],[3319],[3318],[3317],[3316],[3315],[3314],[3313],[3312],[3311],[3310],[3309],[3308],[3307],[3306],[3305],[3304],[3303],[3302],[3301],[3300],[3299],[3298],[3297],[3296],[3295],[3294],[3293],[3292],[3291],[3290],[3289],[3288],[3287],[3286],[3285],[3284],[3283],[3282],[3281],[3280],[3279],[3278],[3277],[3276],[3275],[3274],[3273],[3272],[3271],[3270],[3269],[3268],[3267],[3266],[3265],[3264],[3263],[3262],[3261],[3260],[3259],[3258],[3257],[3256],[3255],[3254],[3253],[3252],[3251],[3250],[3249],[3248],[3247],[3246],[3245],[3244],[3243],[3242],[3241],[3240],[3239],[3238],[3237],[3236],[3235],[3234],[3233],[3232],[3231],[3230],[3229],[3228],[3227],[3226],[3225],[3224],[3223],[3222],[3221],[3220],[3219],[3218],[3217],[3216],[3215],[3214],[3213],[3212],[3211],[3210],[3209],[3208],[3207],[3206],[3205],[3204],[3203],[3202],[3201],[3200],[3199],[3198],[3197],[3196],[3195],[3194],[3193],[3192],[3191],[3190],[3189],[3188],[3187],[3186],[3185],[3184],[3183],[3182],[3181],[3180],[3179],[3178],[3177],[3176],[3175],[3174],[3173],[3172],[3171],[3170],[3169],[3168],[3167],[3166],[3165],[3164],[3163],[3162],[3161],[3160],[3159],[3158],[3157],[3156],[3155],[3154],[3153],[3152],[3151],[3150],[3149],[3148],[3147],[3146],[3145],[3144],[3143],[3142],[3141],[3140],[3139],[3138],[3137],[3136],[3135],[3134],[3133],[3132],[3131],[3130],[3129],[3128],[3127],[3126],[3125],[3124],[3123],[3122],[3121],[3120],[3119],[3118],[3117],[3116],[3115],[3114],[3113],[3112],[3111],[3110],[3109],[3108],[3107],[3106],[3105],[3104],[3103],[3102],[3101],[3100],[3099],[3098],[3097],[3096],[3095],[3094],[3093],[3092],[3091],[3090],[3089],[3088],[3087],[3086],[3085],[3084],[3083],[3082],[3081],[3080],[3079],[3078],[3077],[3076],[3075],[3074],[3073],[3072],[3071],[3070],[3069],[3068],[3067],[3066],[3065],[3064],[3063],[3062],[3061],[3060],[3059],[3058],[3057],[3056],[3055],[3054],[3053],[3052],[3051],[3050],[3049],[3048],[3047],[3046],[3045],[3044],[3043],[3042],[3041],[3040],[3039],[3038],[3037],[3036],[3035],[3034],[3033],[3032],[3031],[3030],[3029],[3028],[3027],[3026],[3025],[3024],[3023],[3022],[3021],[3020],[3019],[3018],[3017],[3016],[3015],[3014],[3013],[3012],[3011],[3010],[3009],[3008],[3007],[3006],[3005],[3004],[3003],[3002],[3001],[3000],[2999],[2998],[2997],[2996],[2995],[2994],[2993],[2992],[2991],[2990],[2989],[2988],[2987],[2986],[2985],[2984],[2983],[2982],[2981],[2980],[2979],[2978],[2977],[2976],[2975],[2974],[2973],[2972],[2971],[2970],[2969],[2968],[2967],[2966],[2965],[2964],[2963],[2962],[2961],[2960],[2959],[2958],[2957],[2956],[2955],[2954],[2953],[2952],[2951],[2950],[2949],[2948],[2947],[2946],[2945],[2944],[2943],[2942],[2941],[2940],[2939],[2938],[2937],[2936],[2935],[2934],[2933],[2932],[2931],[2930],[2929],[2928],[2927],[2926],[2925],[2924],[2923],[2922],[2921],[2920],[2919],[2918],[2917],[2916],[2915],[2914],[2913],[2912],[2911],[2910],[2909],[2908],[2907],[2906],[2905],[2904],[2903],[2902],[2901],[2900],[2899],[2898],[2897],[2896],[2895],[2894],[2893],[2892],[2891],[2890],[2889],[2888],[2887],[2886],[2885],[2884],[2883],[2882],[2881],[2880],[2879],[2878],[2877],[2876],[2875],[2874],[2873],[2872],[2871],[2870],[2869],[2868],[2867],[2866],[2865],[2864],[2863],[2862],[2861],[2860],[2859],[2858],[2857],[2856],[2855],[2854],[2853],[2852],[2851],[2850],[2849],[2848],[2847],[2846],[2845],[2844],[2843],[2842],[2841],[2840],[2839],[2838],[2837],[2836],[2835],[2834],[2833],[2832],[2831],[2830],[2829],[2828],[2827],[2826],[2825],[2824],[2823],[2822],[2821],[2820],[2819],[2818],[2817],[2816],[2815],[2814],[2813],[2812],[2811],[2810],[2809],[2808],[2807],[2806],[2805],[2804],[2803],[2802],[2801],[2800],[2799],[2798],[2797],[2796],[2795],[2794],[2793],[2792],[2791],[2790],[2789],[2788],[2787],[2786],[2785],[2784],[2783],[2782],[2781],[2780],[2779],[2778],[2777],[2776],[2775],[2774],[2773],[2772],[2771],[2770],[2769],[2768],[2767],[2766],[2765],[2764],[2763],[2762],[2761],[2760],[2759],[2758],[2757],[2756],[2755],[2754],[2753],[2752],[2751],[2750],[2749],[2748],[2747],[2746],[2745],[2744],[2743],[2742],[2741],[2740],[2739],[2738],[2737],[2736],[2735],[2734],[2733],[2732],[2731],[2730],[2729],[2728],[2727],[2726],[2725],[2724],[2723],[2722],[2721],[2720],[2719],[2718],[2717],[2716],[2715],[2714],[2713],[2712],[2711],[2710],[2709],[2708],[2707],[2706],[2705],[2704],[2703],[2702],[2701],[2700],[2699],[2698],[2697],[2696],[2695],[2694],[2693],[2692],[2691],[2690],[2689],[2688],[2687],[2686],[2685],[2684],[2683],[2682],[2681],[2680],[2679],[2678],[2677],[2676],[2675],[2674],[2673],[2672],[2671],[2670],[2669],[2668],[2667],[2666],[2665],[2664],[2663],[2662],[2661],[2660],[2659],[2658],[2657],[2656],[2655],[2654],[2653],[2652],[2651],[2650],[2649],[2648],[2647],[2646],[2645],[2644],[2643],[2642],[2641],[2640],[2639],[2638],[2637],[2636],[2635],[2634],[2633],[2632],[2631],[2630],[2629],[2628],[2627],[2626],[2625],[2624],[2623],[2622],[2621],[2620],[2619],[2618],[2617],[2616],[2615],[2614],[2613],[2612],[2611],[2610],[2609],[2608],[2607],[2606],[2605],[2604],[2603],[2602],[2601],[2600],[2599],[2598],[2597],[2596],[2595],[2594],[2593],[2592],[2591],[2590],[2589],[2588],[2587],[2586],[2585],[2584],[2583],[2582],[2581],[2580],[2579],[2578],[2577],[2576],[2575],[2574],[2573],[2572],[2571],[2570],[2569],[2568],[2567],[2566],[2565],[2564],[2563],[2562],[2561],[2560],[2559],[2558],[2557],[2556],[2555],[2554],[2553],[2552],[2551],[2550],[2549],[2548],[2547],[2546],[2545],[2544],[2543],[2542],[2541],[2540],[2539],[2538],[2537],[2536],[2535],[2534],[2533],[2532],[2531],[2530],[2529],[2528],[2527],[2526],[2525],[2524],[2523],[2522],[2521],[2520],[2519],[2518],[2517],[2516],[2515],[2514],[2513],[2512],[2511],[2510],[2509],[2508],[2507],[2506],[2505],[2504],[2503],[2502],[2501],[2500],[2499],[2498],[2497],[2496],[2495],[2494],[2493],[2492],[2491],[2490],[2489],[2488],[2487],[2486],[2485],[2484],[2483],[2482],[2481],[2480],[2479],[2478],[2477],[2476],[2475],[2474],[2473],[2472],[2471],[2470],[2469],[2468],[2467],[2466],[2465],[2464],[2463],[2462],[2461],[2460],[2459],[2458],[2457],[2456],[2455],[2454],[2453],[2452],[2451],[2450],[2449],[2448],[2447],[2446],[2445],[2444],[2443],[2442],[2441],[2440],[2439],[2438],[2437],[2436],[2435],[2434],[2433],[2432],[2431],[2430],[2429],[2428],[2427],[2426],[2425],[2424],[2423],[2422],[2421],[2420],[2419],[2418],[2417],[2416],[2415],[2414],[2413],[2412],[2411],[2410],[2409],[2408],[2407],[2406],[2405],[2404],[2403],[2402],[2401],[2400],[2399],[2398],[2397],[2396],[2395],[2394],[2393],[2392],[2391],[2390],[2389],[2388],[2387],[2386],[2385],[2384],[2383],[2382],[2381],[2380],[2379],[2378],[2377],[2376],[2375],[2374],[2373],[2372],[2371],[2370],[2369],[2368],[2367],[2366],[2365],[2364],[2363],[2362],[2361],[2360],[2359],[2358],[2357],[2356],[2355],[2354],[2353],[2352],[2351],[2350],[2349],[2348],[2347],[2346],[2345],[2344],[2343],[2342],[2341],[2340],[2339],[2338],[2337],[2336],[2335],[2334],[2333],[2332],[2331],[2330],[2329],[2328],[2327],[2326],[2325],[2324],[2323],[2322],[2321],[2320],[2319],[2318],[2317],[2316],[2315],[2314],[2313],[2312],[2311],[2310],[2309],[2308],[2307],[2306],[2305],[2304],[2303],[2302],[2301],[2300],[2299],[2298],[2297],[2296],[2295],[2294],[2293],[2292],[2291],[2290],[2289],[2288],[2287],[2286],[2285],[2284],[2283],[2282],[2281],[2280],[2279],[2278],[2277],[2276],[2275],[2274],[2273],[2272],[2271],[2270],[2269],[2268],[2267],[2266],[2265],[2264],[2263],[2262],[2261],[2260],[2259],[2258],[2257],[2256],[2255],[2254],[2253],[2252],[2251],[2250],[2249],[2248],[2247],[2246],[2245],[2244],[2243],[2242],[2241],[2240],[2239],[2238],[2237],[2236],[2235],[2234],[2233],[2232],[2231],[2230],[2229],[2228],[2227],[2226],[2225],[2224],[2223],[2222],[2221],[2220],[2219],[2218],[2217],[2216],[2215],[2214],[2213],[2212],[2211],[2210],[2209],[2208],[2207],[2206],[2205],[2204],[2203],[2202],[2201],[2200],[2199],[2198],[2197],[2196],[2195],[2194],[2193],[2192],[2191],[2190],[2189],[2188],[2187],[2186],[2185],[2184],[2183],[2182],[2181],[2180],[2179],[2178],[2177],[2176],[2175],[2174],[2173],[2172],[2171],[2170],[2169],[2168],[2167],[2166],[2165],[2164],[2163],[2162],[2161],[2160],[2159],[2158],[2157],[2156],[2155],[2154],[2153],[2152],[2151],[2150],[2149],[2148],[2147],[2146]... 13913 more chars

验证方法

本方法旨在证明题意要求输出的是位置上逆序排列的第 k 个元素 (索引为 k-1),而非算术上的第 k 大元素。由于大量使用 Python 内置函数/方法,不具有学习意义,且时间复杂度过高。

2020/08/11 - 13.50% (1140ms)

class KthLargest:def __init__(self, k: int, nums: List[int]):self.kth = kself.arr = numsdef add(self, val: int) -> int:self.arr.append(val)self.arr.sort(reverse=True)return self.arr[self.kth-1]

期望输出 / 实际输出

[null,4,5,5,8,8]

stdout

[4, 5, 8, 2]
[8, 5, 4, 3, 2]
[8, 5, 5, 4, 3, 2]
[10, 8, 5, 5, 4, 3, 2]
[10, 9, 8, 5, 5, 4, 3, 2]
[10, 9, 8, 5, 5, 4, 4, 3, 2]

失败测试

法一:单链表。相比于数组,链表结构虽然在指定索引访问元素方式略逊,但在插入/删除元素方面更优。可惜在最后的超长测试中,超出时间限制了。

2020/08/11 - 超出时间限制

class KthLargest:# ---------------------------------------------------------------------- #class _ListNode:__slots__ = "_val", "_next"def __init__(self, val=None, next=None):self._val = valself._next = next# ---------------------------------------------------------------------- #       def _connectNode(self, head, array):""" 根据数组构造单链表 """cur = headfor i in range(len(array)):cur._next = self._ListNode(array[i])cur = cur._next        def _insertNode(self, head, value):""" 插入指定值节点 """new = self._ListNode(value)  # 待插入新节点cur = headwhile cur._next:if cur._next._val <= new._val:new._next = cur._nextcur._next = newreturnelse:cur = cur._nextcur._next = new  # 接在最后def _searchNode(self, head, key):""" 查找指定位置节点 """cur = headfor _ in range(key):cur = cur._nextresult = cur._val if cur is not None else Nonereturn cur._val# ---------------------------------------------------------------------- #    def __init__(self, k: int, nums: List[int]):self.kth = kself.arr = sorted(nums, reverse=True)  # 逆序排列好数组self.dummy = self._ListNode(float("INF"))  # 哨兵节点if self.arr:self._connectNode(self.dummy, self.arr)def add(self, val: int) -> int:if not self.arr:self.arr.append(val)self.dummy._next = self._ListNode(val)return valelse:self._insertNode(self.dummy, val)return self._searchNode(self.dummy, self.kth)# Your KthLargest object will be instantiated and called as such:
# obj = KthLargest(k, nums)
# param_1 = obj.add(val)

法二:二叉搜索树改。相比于数组,链表结构虽然在指定索引访问元素方式略逊,但在插入/删除元素方面更优。而二乘搜索树相比于线性链表,又可以将时间复杂度从 O(n) 改进到 O(logn)。可惜在最后的超长测试中,还是超出时间限制了。看来基于 Python 强行用二叉搜索树速度还是不理想,如果是 C++ 或可实现。

2020/08/11 - 超出时间限制

class KthLargest:# -------------------------- nested _TreeNode class -------------------------- #class _TreeNode:""" Lightweight, nonpublic class for storing a tree node """__slots__ = "_val", "_left", "_right"  # straemline memory usagedef __init__(self, val=None, left=None, right=None):self._val = val                    # reference to the node valueself._left = left                  # reference to the left childself._right = right                # reference to the right child# --------------------- nested methods of KthLargest class -------------------- # def _createTree(self, root, nums):"""nums:待构造为树的数组, 只用一次"""for index in range(1, len(nums)):  # 除根节点外的其余子节点self._insertNode(root, nums[index])    def _insertNode(self, root, val):"""root:待插入树根节点val:待插入节点值"""if not root:return self._TreeNode(val)if val >= root._val:  # 注意:加入了等于的情况root._right = self._insertNode(root._right, val)else:root._left = self._insertNode(root._left, val)return root  # 返回根节点     def _searchNode(self, root, times):  # from: https://blog.csdn.net/qq_39478403/article/details/107678587"""  root:待中序遍历树的根节点times:需要遍历次数"""def _leftmost_inorder(root, stack):while root:stack.append(root)root = root._leftdef _next(stack):""" 树节点迭代器 """topmost_node = stack.pop()  # 目标节点if topmost_node._right:_leftmost_inorder(topmost_node._right, stack)return topmost_nodestack = []  # 中序遍历辅助栈_leftmost_inorder(root, stack)cur = stack[-1]  for _ in range(times):cur = _next(stack)return cur._val# --------------------- basic methods of KthLargest class -------------------- #def __init__(self, k: int, nums: List[int]):self.kth = k                                # 待查索引self.arr = nums                             # 待构造数组self.size = len(nums)                       # 当前节点数self.root = None                            # 默认初始为空树# 非空树if self.arr:  self.root = self._TreeNode(self.arr[0]) # 创建根节点self._createTree(self.root, self.arr)   # 根据数组 nums 构造树def add(self, val: int) -> int:# 插入值为 val 的节点if self.root is None:                       # 专门应对空树, 补充初始化self.root = self._TreeNode(val)else:self._insertNode(self.root, val)        # 将值为 val 的节点插入树self.size += 1                              # 节点数 +1# 查找 kth 节点值times = self.size - self.kth + 1            # 需要遍历次数return self._searchNode(self.root, times)   # 重新在树中找到第 k 个节点# Your KthLargest object will be instantiated and called as such:
# obj = KthLargest(k, nums)
# param_1 = obj.add(val)

其他实现 A

// C++ implementation
class KthLargest {int K;multiset<int> st;
public:KthLargest(int k, vector<int>& nums) {for (int n : nums) {st.insert(n);if (st.size() > k) st.erase(st.begin());}       K = k;}int add(int val) {st.insert(val);if (st.size() > K) st.erase(st.begin());return *st.begin();}
};

// C++ implementation
class KthLargest {int K;priority_queue<int, vector<int>, greater<int>> pq;
public:KthLargest(int k, vector<int>& nums) {for (int n : nums) {pq.push(n);if (pq.size() > k) pq.pop();}       K = k;}int add(int val) {pq.push(val);if (pq.size() > K) pq.pop();return pq.top();}
};

其他实现 B

求一个数列前 K 大数的问题经常会遇到,在程序中一般用小顶堆可以解决。对于 heapy 模块而言,例如:

>>> heap
[0, 1, 3, 6, 2, 8, 4, 7, 9, 5]
>>> heappush(heap, 0.5)
>>> heap
[0, 0.5, 3, 6, 1, 8, 4, 7, 9, 5, 2]# Python 的 heapq 在实现时,不同于 C++ STL 或 Java 可以传入比较函数
# 元素的排列顺序必须保证一点:位置i处的元素总是大于位置 i//2 处的元素(即小于位置 2*i 和 2*i+1 处的元素)
# 作为底层堆算法的基础,这被称为堆特征(heap property)
# 函数 heappop 弹出最小的元素(总是位于索引0处),并确保剩余元素中最小的那个位于索引 0 处(保持堆特征)

2020/08/11 - 98.23% (108ms) - 最佳 

# Python implementation
class KthLargest:def __init__(self, k: int, nums: List[int]):self.k = kself.nums = numsheapq.heapify(self.nums)  # 原地把 list 调整成 小顶堆 (类似递增列表)while len(self.nums) > k:  heapq.heappop(self.nums)  # 弹出堆顶元素/堆中最小值, 并重新调整 (超出索引 k 的更小而无用部分) def add(self, val: int) -> int:heapq.heappush(self.nums, val)  # 往小顶堆压入新元素, 并重新调整if len(self.nums) > self.k :heapq.heappop(self.nums)  # 弹出堆顶元素/堆中最小值, 并重新调整 (超出索引 k 的更小而无用部分) return self.nums[0]  # 直接弹出堆顶元素即为目标元素

原来研究了半天,是没用对数据结构。看来还需要更多地学习才行!(说不定面试让手写最小堆)  T T ...

参考文献

https://leetcode-cn.com/leetbook/read/introduction-to-data-structure-binary-search-tree/xpjovh/

https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/solution/703-shu-ju-liu-zhong-de-di-kda-yuan-su-liang-chong/

https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/solution/703-pythonshi-xian-shu-ju-liu-zhong-di-kda-xiao-di/


三、二叉搜索树的最近公共祖先

3.1 题目要求

3.2 解决过程

个人实现

法一:DFS 递归实现。采用和 剑指 Offer 68 - II. 二叉树的最近公共祖先 完全一致的解决方式 (详见参考文献)。缺点是虽然可以应用于任意类型的二叉树,但是未能充分运用到 BST 的特性。空间复杂度 O(n),时间复杂度 O(n)。

2020/08/12 - 59.65% (100ms)

class Solution:def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':if (not root) or (root == p) or (root == q):  # 只有两种情况:没找到 / 找到目标节点return root  # left 和 right 保存左、右子树查找结果, 只有两种情况:None 或 目标节点 p / qleft = self.lowestCommonAncestor(root.left, p, q)right = self.lowestCommonAncestor(root.right, p, q)if not left:  # 如果在左子树中没找到目标节点, 返回右子树查找结果return rightif not right:  # 如果在右子树中没找到目标节点, 返回左子树查找结果return leftreturn root  #  如果左、右子树均找到了目标节点, 即得所求的最近公共祖先

法一改:BFS 递归实现。通过 BST 性质先通过循环缩小搜索范围,再进行上述递归搜索。然而,结果并没有得到优化,看来是优化的方式不恰当。

2020/08/12 - 42.87% (104ms)

class Solution:def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':larger = max(p.val, q.val)smaller = min(p.val, q.val)# 根据 BST 性质, p 和 q 的最小公共祖先数值范围必属于 [smaller, larger]while True:if root.val < smaller:root = root.rightelif root.val > larger:root = root.left        else:breakdef dfs(root):if (not root) or (root == p) or (root == q):  # 只有两种情况:没找到 / 找到 目标节点return root  left = dfs(root.left)right = dfs(root.right)   if not left:  # 如果在左子树中没找到目标节点, 返回右子树查找结果return rightif not right:  # 如果在右子树中没找到目标节点, 返回左子树查找结果return leftreturn root  #  如果左、右子树均找到了目标节点, 即得所求的最近公共祖先return dfs(root)

官方实现与说明

class Solution:def lowestCommonAncestor(self, root, p, q):""":type root: TreeNode:type p: TreeNode:type q: TreeNode:rtype: TreeNode"""# Value of current node or parent node.parent_val = root.val# Value of pp_val = p.val# Value of qq_val = q.val# If both p and q are greater than parentif p_val > parent_val and q_val > parent_val:    return self.lowestCommonAncestor(root.right, p, q)# If both p and q are lesser than parentelif p_val < parent_val and q_val < parent_val:    return self.lowestCommonAncestor(root.left, p, q)# We have found the split point, i.e. the LCA node.else:return root

2020/08/12 - 42.87% (104ms)

简化书写,删除冗余变量,增加注释

class Solution:def lowestCommonAncestor(self, root, p, q):if p.val > root.val and q.val > root.val:               # root.val < min(p.val, q.val)return self.lowestCommonAncestor(root.right, p, q)  # 往右搜索elif p.val < root.val and q.val < root.val:             # root.val > max(p.val, q.val)return self.lowestCommonAncestor(root.left, p, q)   # 往左搜索else:  return root                                         # 一旦到达范围内, 即为目标 LCA

2020/08/12 - 74.77% (96ms)


class Solution:def lowestCommonAncestor(self, root, p, q):""":type root: TreeNode:type p: TreeNode:type q: TreeNode:rtype: TreeNode"""# Value of pp_val = p.val# Value of qq_val = q.val# Start from the root node of the treenode = root# Traverse the treewhile node:# Value of current node or parent node.parent_val = node.valif p_val > parent_val and q_val > parent_val:    # If both p and q are greater than parentnode = node.rightelif p_val < parent_val and q_val < parent_val:# If both p and q are lesser than parentnode = node.leftelse:# We have found the split point, i.e. the LCA node.return node

2020/08/12 - 88.84% (92ms)

简化书写,删除冗余变量,增加注释

class Solution:def lowestCommonAncestor(self, root, p, q):node = rootwhile node:if p.val > node.val and q.val > node.val:    # node.val < min(p.val, q.val)    node = node.right                        # 往右搜索elif p.val < node.val and q.val < node.val:  # node.val > max(p.val, q.val)node = node.left                         # 往左搜索else:return node                              # 一旦到达范围内, 即为目标 LCA

 2020/08/12 - 98.42% (84ms) - 最佳


虽然已经发现了 关键规律:p 和 q 的最小公共祖先数值范围必属于 [smaller, larger],但是未能写出最佳解法,因为没有证明或想清楚 自顶向下首个满足数组范围内的节点即为目标 LCA。

参考文献

https://leetcode-cn.com/leetbook/read/introduction-to-data-structure-binary-search-tree/xpf523/

https://blog.csdn.net/qq_39478403/article/details/107613468

https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/solution/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian--2/


四、存在重复元素 III

4.1 题目要求

4.2 解决过程

测试用例

[1,2,3,1]
3
0
[1,0,1,1]
1
2
[1,5,9,1,5,9]
2
3
[2433,3054,9952,6470,2509,8502,-8802,-5276,6559,-9555,-4765,6399,6543,2027,1723,-3032,-3319,-7726,-1425,-7431,-7492,4803,7952,-6603,-784,-8011,6161,-6955,5800,5834,-6310,1097,2327,-4007,8664,-9619,5922,518,9740,9976,4257,-7803,6023,4189,-5167,-4699,2441,5941,3663,625,5402,-3447,8888,9040,-4811,-7547,6822,1415,9372,-9262,4584,4149,-276,-4019,198,608,-4466,5383,7871,3149,-8358,9270,3565,-882,-9494,-6475,9833,-7744,-598,5299,5976,7361,-9444,3771,-5718,9051,3469,-4028,4216,5506,-8611,-9744,-8007,213,-3454,-2420,6283,-5616,-3508,-1329,4694,-7219,2056,9063,-9648,-7722,-755,-9482,9078,-8411,-3393,-4395,-1203,-2165,2170,8643,-5205,4050,-9322,6178,-973,-331,7559,-7889,3499,-7195,7725,-9155,3899,-5259,1981,4766,595,-7183,4150,-2062,3288,5047,-9789,1507,-4937,5909,-3442,-4599,-789,6931,-3100,-9151,-3665,-4228,-7466,6393,6632,-5133,-7684,4525,1150,3826,-6424,-1689,6206,-5747,8061,1502,-3893,-8528,2387,-6159,-1355,-5789,1361,-1593,-8955,4505,8885,-7793,8038,-8401,9688,6241,2518,7115,-7193,-2735,5665,8331,-1822,-6938,3307,4019,6020,-8340,-7138,4478,-6911,-1241,3829,-5387,-3139,-1707,-187,-9148,-8734,-9570,4666,-9280,-31,-4474,-5569,548,5768,-7954,-9796,9525,-56,-450,-7316,5987,25,-9590,586,-4942,-8193,-3165,6832,1436,-106,-7393,-6921,-9176,8404,1220,9014,224,2145,4099,-3517,-6904,6707,3274,1374,1868,-2740,-3041,-9858,6342,-166,-3181,6941,1132,-685,-8060,-7796,5228,9936,-15,-8382,-76,4910,-9735,-8025,9225,-4619,4279,5578,1910,-659,834,1501,7328,-8782,-6110,-4776,1321,5721,2014,5767,-5541,-7052,-2716,7768,-5243,-5997,7162,3157,-8769,2776,3018,6159,7571,-3806,-6260,-3565,5508,6517,-9469,9652,4320,8409,7357,3609,4760,1162,-1186,-6994,-2294,1820,-3094,-9049,-2426,9577,7051,-8080,-4335,3428,4351,1729,9169,989,1624,-1275,-577,5765,-7344,-8206,-4561,8191,1709,4416,9256,2439,3907,-696,4164,-5627,3748,-1003,-7352,-9282,4822,-877,-5078,2783,-8127,8810,-5625,-3563,-3644,4009,-3791,-5544,3696,-7041,-6941,-54,-2702,-8501,4985,7330,7466,526,-2886,8098,-2973,-6142,-8740,-2965,-2264,-8868,-5292,-7997,8192,-4444,-1954,1634,8758,-6569,-5179,-6504,-8153,1787,8669,-8513,-9875,1694,3144,-9540,-2051,-927,2037,1708,-1464,-9667,6297,7912,-1327,785,-3514,9784,1840,3709,-5542,-4282,-8051,7006,-3899,9159,9430,7492,-2751,-5174,5860,1499,-9942,-4468,-5941,5589,-5699,5429,6743,8444,-2039,-6824,-1257,-5906,8266,-3831,5392,1645,320,1572,-9595,-454,7877,-8070,-8432,-7719,-4199,6043,-5002,7800,2363,-2493,2626,3390,6243,-2734,7055,8290,5547,2828,-4021,3943,-5139,8892,1597,-7757,7532,-3109,8516,8161,-8882,-3209,6165,7309,-1325,7792,7918,-3936,7859,-7681,-4647,-6123,2293,-9438,-5270,-5978,-4520,-9347,-4569,7858,8471,910,-6564,-9980,-1603,-7042,5674,2103,-9855,-9269,5549,-4239,4236,8890,9624,1528,9666,3458,-643,-6591,-9008,-6535,-5993,-2978,-3478,-4844,3370,2072,-5256,-8584,-7659,4674,-2893,-7729,-2212,2792,-9012,5011,5325,1698,9680,894,-8603,4059,-4729,-8749,-3854,2875,-527,-9600,3236,-6607,-4491,-3488,-1586,-1579,-9039,-372,-2798,8904,1688,-1669,-83,-8200,-490,-6849,9792,90,-9453,9725,-3525,-221,5067,4441,796,5324,5284,8709,-5893,8174,970,-1067,-9517,2046,1590,-2975,9544,-7984,-7701,8644,8456,-212,77,5664,-7414,8321,7407,-756,7649,-4851,-1071,278,-5076,6462,-8670,-4849,914,-4500,5401,-7112,-4464,-7643,-3685,-5307,1749,6949,1478,-6243,9320,2516,-798,9095,5627,6327,-185,-6435,8979,6985,4570,6442,-909,3919,1880,4593,-2440,2523,7331,2662,4287,3712,4071,-2609,-9451,-6762,-5388,-1929,8572,3566,1354,1957,-147,-1628,6002,-4368,8312,-2033,-6340,-4190,-8975,6894,177,-3761,2310,3794,-8940,1444,-6522,325,-1908,-88,-3091,-7472,5990,-5134,8089,-9055,-9485,2582,-6927,5660,-3187,8264,8960,-1842,3308,-1809,-1378,2943,430,2192,364,-9458,1143,8672,4037,-7739,9640,-2534,-272,-3122,417,693,-2732,-7286,8564,-8604,850,-1055,9967,-7016,-3601,-1125,-7953,5331,2822,2729,-3483,1048,-8439,9281,2960,1539,4929,-5151,2635,-7023,-8865,-567,-3486,-6882,-1892,3741,5260,-7132,-453,6482,1433,-8227,2897,6354,686,-9429,-9521,-6943,-329,-4735,7590,-6850,8844,5423,3169,-2041,7308,7823,-7166,6927,-1738,-1644,-7447,1238,-9832,-7865,-6837,-7097,9469,-1927,-7043,6872,-2683,-5509,7301,5147,-3235,5039,-4323,6414,1104,4745,-6222,4113,-6663,-5571,7765,7034,7741,-2855,-7126,5866,-5831,2790,9748,8665,-2383,761,-690,4540,7229,-8187,10,6426,-6312,8287,-8522,-4186,2083,8592,3843,8052,-9844,8562,671,1969,4215,2178,1686,-9412,-5527,-1193,6643,-5515,-5389,3820,-7104,9546,1409,6613,1086,-3375,1192,-382,6891,-4693,-8897,763,3457,2538,-2011,-9687,5935,8929,7525,3583,-8451,792,-5564,7589,9828,-488,4846,-268,5675,-1462,8345,2868,-2189,-509,-6179,-1624,1404,8326,-5867,2224,-5598,2684,5628,5000,5586,-5596,104,-2182,-5108,-3698,5107,-8532,5697,6932,-6650,6223,1950,-7535,2515,-1153,2927,6450,-9417,-668,-2708,-5852,7896,4219,-6388,6457,8170,9459,-1415,2075,-672,7471,6784,909,3362,2855,-7060,276,2460,214,-28,3590,5360,-1444,-6224,5706,5787,-650,-9022,3981,-9607,-8154,-186,-326,-7585,758,5317,-4695,8878,3850,8796,7252,-2816,158,-6765,5338,848,-7147,7581,-7842,3101,2660,-6171,9011,-6455,567,-8751,8970,6860,9899,-1916,-379,9836,9812,5918,4767,-6087,-6304,-3743,-8908,-870,-7500,3316,655,6576,-4136,2322,8475,678,4156,-7231,4017,-2007,3045,5605,6209,3656,3533,3176,1190,9311,-6433,2446,2022,2546,-2880,-9502,-3760,5612,8343,-3062,9484,3510,-7716,4638,8716,5799,-7091,7261,4651,-2252,8911,-2245,-8361,6840,8027,-7820,-674,-5250,916,935,9579,7335,-3061,47,-1549,1268,3737,-3646,-6254,-9574,-3325,-944,-328,-7886,174,8521,2926,-984,6098,5908,-2587,3264,9396,-6622,866,9454,4568,-6283,-9395,5571,1852,4225,-2240,-4085,-1947,6282,-402,-3668,2856,-3157,-1207,-821,-9157,-9706,-3059,-7766,8096,-4785,-8032,9549,-246,2107,-9114,4969,8656,-4198,8862,4998,1333,754,-8272,8053,-5895,-6466,-8942,9123,480,-7590,-7003,7635,-2787,3306,-1426,3121,5481,-1988,6581,1961,2840,-1485,8741,-7160,-5012,5988,3385,4146,7236,-7857,-213,1522,6533,5625,-1393,-7745,2114,-6554,5327,-1923,3620,-475,7214,-6366,-647,-7150,8124,4773,1379,-2331,6569,712,5142,8172,1909,-1775,6846,4834,2139,2862,1674,124,-2143,-6352,9527,1032,-2364,7452,9555,-6917,8727,-5303,1016,9418,9009,-4900,-3717,-8094,9308,-3734,6889,-9020,-7255,9136,-6502,4754,8007,-3553,6621,-9887,7165,-5888,4871,-5054,4551,9497,-8242,-1074,9346,-6785,658,2940,-3551,-7351,4970,9875,-549,-2678,1895,-8681,8113,3513,3814,-603,-1681,-9169,-8353,8399,-3327,2397,-5185,6570,4196,-5021,4547,7128,-8991,2630,-3355,-6151,2491,-9736,-1390,-1180,-2960,-5116,3485,5002,901,-7386,8790,-1962,190,3097,-6429,2815,-8061,-3195,2311,100,-9665,-5786,-6537,-8466,3266,543,1628,-5824,1160,-5396,7511,1835,2279,-114,-5036,-8406,9729,-2730,-5432,-5807,7778,2738,-1692,2371,-1217,-6721,-9377,8162,-8638,-5375,8145,8178,-3356,6293,-4336,-7357,7368,-6077,-2523,7213,2478,-6353,1667,5499,357,-222,-6212,3039,-8204,2395,-6318,6422,6418,-8972,611,7211,-7928,-4997,7603,-375,9557,1481,-5260,-8262,-5448,1860,9245,6486,2144,6654,8272,-2350,8233,-6425,7723,777,-9881,-5674,-1631,8677,-5850,-3087,9476,9018,-9287,9939,-9243,9752,-4692,-723,-7967,-1476,-1192,9830,-9362,8883,522,-8042,-3363,7444,-3914,-244,8514,-6967,-7156,-7691,5822,9825,-8379,-8097,-8587,7845,-1247,-2819,-1971,3106,9591,8243,-3183,-1297,436,-613,-4664,3275,-1722,3780,-4515,5889,3360,-1977,7641,-9092,-9161,4922,5750,-5686,7325,7172,7188,2088,-9067,-9069,9799,3221,-6016,9128,3584,6567,2346,8128,-9925,-3000,-5769,-6021,-6952,-4603,-9296,6489,-1540,3740,-5348,7338,-1677,9075,8051,6663,4583,-1560,839,8210,202,-662,-5267,-1508,3540,3619,3932,4548,9253,9637,-5090,-5944,-8771,119,6086,-2995,752,9013,2953,-5557,-4612,6675,5041,-6322,2398,-492,-3432,-761,-3458,-5011,-7087,7520,-2209,-7542,1658,-325,-2429,-4022,74,-9715,2552,1947,225,-8295,5667,-6076,-7314,-8977,-1283,-1980,-4481,-2201,8209,-1764,4573,-7808,5180,-1777,3166,5806,7209,-8236,-6035,6856,-3128,3948,-621,-3809,-2982,1375,7797,4703,7110,-1017,59,4900,934,-922,994,6525,6501,2339,6873,-129,7594,-1638,-9183,3951,-3346,-1835,-6885,8763,-2890,4528,-7086,-7628,674,-1559,4207,8636,-4690,8623,9508,-4938,1200,-4577,9367,-477,7040,332,8406,7961,-2565,-2354,-6669,-4539,9601,-5234,228,8594,-6860,-9791,-2421,7474,5469,8668,7824,-1097,-1706,-1463,2974,5177,-3969,-8323,812,-5971,-4985,-3718,-4129,-8347,7010,5698,457,-5057,7897,8286,-2831,4228,596,-5468,3046,9273,8415,-1882,-780,-98,5602,5749,-5788,2656,-8492,-8394,6634,8417,3734,-1903,7248,-519,-5568,2545,8859,2504,6290,1660,-3557,150,-309,-6368,4431,1165,3391,2127,8031,7378,-9922,-5853,-57,542,9227,7591,7196,-2704,6468,-6914,4073,5595,-3700,7226,7182,3204,809,-7497,9755,-8970,-5477,1988,-9211,-1511,-1062,1949,-7851,219,-473,-1227,5428,2604,1151,4181,1311,-9044,-5255,-4966,9299,-544,3155,8315,9055,3539,7388,5090,8306,-3007,6095,-7401,-9692,4504,-9939,4806,8132,5079,-652,7348,-5793,3322,6382,2307,-510,8203,2055,-1829,4135,-3159,9616,-3538,3831,5726,-5795,8080,-9708,-5711,8467,-7158,6906,1900,-6248,775,6598,-4598,-223,-9909,8262,-7530,394,-6971,-24,-645,-397,-5719,8707,7291,6429,4709,5630,6768,-8663,8642,-3310,-1983,-7944,9964,-7575,8795,-2529,9653,-6987,-8961,-197,-1702,8049,-5746,-608,-9770,5676,-6696,189,-2711,6745,-3369,-3810,5868,-8277,-7952,626,-1430,-3509,3488,-8656,-5122,7075,993,9723,2289,-8083,-9210,-7122,-5401,8797,-9907,5518,6113,-6570,1889,493,-6660,2035,7579,-466,3134,8986,-3247,-1030,-5943,400,1438,7588,-4189,-6130,8621,-9468,311,-6858,-5649,1068,-8510,-7100,-584,6244,-8781,-1261,3868,-377,8246,6078,-8744,950,7323,-3103,3196,-5528,-3263,-9131,7813,-7330,5556,303,2186,9606,4572,-2262,-7085,7032,7111,-6397,4668,-9397,2294,-9493,-8364,-7706,-7709,4168,9379,4211,-8386,-6412,-4816,-3837,-3708,1652,379,3653,4975,-2142,3065,1362,6763,9619,-4068,-8965,6879,-5581,-5321,-8542,8715,-904,-7841,3130,-9837,3194,-2466,-6277,347,8861,-7018,8332,6523,3708,-2630,-3745,-5696,-2317,6392,-947,37,-4988,2217,-5816,-6229,-5365,3092,-374,4560,-9258,1085,-4122,5030,-8612,7955,-1472,2542,2048,-2391,3986,8510,9570,-1697,3161,744,857,-4502,-7194,5023,6069,1582,1197,-2651,2117,-5552,9809,292,617,9918,-7409,8469,-3420,1127,846,-7994,-3873,5550,569,1761,2378,-501,3333,-7064,2966,-8404,2040,6642,-2528,1536,-7019,-2611,-6446,-3777,-1343,8063,-1854,7798,-875,2737,6187,2475,4443,372,-3953,5058,5357,2006,3223,9884,-5638,-5775,-966,-8441,-8809,-6935,3517,-2260,-4365,2963,-8210,-7874,5998,404,159,-6661,-1760,-8357,9611,-6069,9843,-1996,-3419,2896,4042,254,-1411,8353,4971,7703,3439,-7879,-7124,-6098,-6309,975,3312,-7177,-8932,8143,-6402,6140,-128,3812,-3922,7544,-2747,4543,-7946,4193,4176,-3910,-8184,-529,1665,3842,383,8119,-5986,-4058,-6950,-4454,8346,2821,2406,5223,-2810,7416,4564,6796,-3911,-1134,-7815,2308,2667,-1759,-6319,-2434,8997,9184,6786,3279,5902,4085,-2689,1809,4643,-8294,9324,-5115,7552,-6100,3749,-9864,-4881,-1530,6733,-2408,-2570,-8179,6184,-3792,3172,2605,-4276,-1262,9231,2946,-1038,3051,-8992,9042,4555,-1091,-5511,-4948,9987,4328,2147,689,-7114,-7082,-1685,1997,5672,-7783,-869,3783,-8730,-3328,5644,4238,-7389,973,-9337,7593,-61,-7438,3953,3429,-5310,-384,-8499,7140,5780,-4109,9442,9370,-9098,-1354,9760,-2222,-7365,-575,2964,3805,9431,6412,-6362,-7685,-3578,7494,-8829,7340,-2888,8249,3650,-876,-6886,-9093,-7708,2980,-9341,-9191,-4240,5246,7820,7697,-4991,1593,7769,7339,-4232,3995,2231,-3963,-5844,-3266,-7537,-7493,-4141,6808,5384,5048,-9170,5712,-924,8423,371,-5932,5923,3558,-8380,-8230,9383,-7626,-8157,409,-4387,1903,638,2449,-6267,6561,-2976,9080,-5755,2140,-1513,-7012,-301,-6626,8127,3644,-2226,-3151,7515,6926,5803,-2346,5235,-5416,-8194,-1258,-9723,7521,4001,4158,-8830,-3602,-9762,-6728,-3460,-4585,3278,3528,621,4316,2121,-8943,7664,4326,6716,1925,9981,6658,939,-5806,4744,2971,-4994,-8645,-5026,-7876,-4137,-2476,463,-6472,3676,1750,9678,3414,6044,2937,7049,-7295,-322,-8639,5993,8303,-5897,-1830,6684,9822,-1466,8518,-4062,557,-8867,4663,-1584,-1148,-2157,-2138,-7017,3290,-6476,2285,-9104,-7333,-8247,7838,-8815,-5612,-1952,4331,5911,-3493,8748,87,-7224,3436,-6140,9195,8717,-3560,395,5517,8956,-8540,-8784,-6533,5372,-6974,-4770,-8530,-5980,1215,-319,-3237,-3679,-8757,6907,-9319,7646,7753,8483,4779,7630,6143,-5210,-1899,-920,-5636,3523,5887,-8329,-2223,168,-541,8045,331,-2224,-6062,9800,123,-8041,-7053,9739,5662,-7434,-9713,-6354,-7941,-8928,-5412,-6944,5368,9213,456,9863,2921,8126,-7577,-1385,3673,5833,7349,-1263,-8085,81,-5414,9662,-461,-1609,-9500,7982,-5424,-1324,1229,895,-2003,-3054,7386,-7655,-2292,7286,-4195,2063,-9065,-5834,-2322,-2020,4259,118,-2987,-4907,-8372,-6555,9575,6456,6992,-1346,-6756,-3633,-8192,3349,-8758,5409,6619,-6578,-5170,3784,-8605,-933,8196,-9666,3058,-2193,131,9127,4549,-524,692,-5006,-6337,-1907,8186,-9240,-7603,231,-1214,-5990,1619,8990,-5504,9257,6339,5651,2765,-5723,1099,-9962,-6964,-9825,-8649,1131,1247,9201,-8514,662,-240,-9572,-1006,-6047,-8906,-8976,-8408,-4843,5445,8740,-8717,5587,-6741,3476,-2936,-2005,-5475,-7268,-2618,7270,7312,-7674,-9299,5419,8314,5772,2188,4368,-512,8565,5091,6198,-1982,-1445,-6491,9669,-8155,-8661,9456,8891,8134,-8607,5014,7054,-1837,8164,9463,-5201,-959,-6962,5156,2930,-1282,888,-3387,1335,9309,2512,8493,-4622,-7853,4814,3531,8816,4692,8385,3606,-7321,-8249,-2413,-6551,-1647,1744,5430,8112,-3441,9155,4664,787,4994,-7664,5411,-1604,-2788,2319,4461,1766,-2064,-4243,-9691,-9610,4901,4397,-4250,-787,-1179,7067,-3126,-8022,-4749,-9780,3171,-2511,-1817,-588,-5224,-2161,4337,-3695,1565,-4449,-9168,4661,-3505,-1825,3372,-198,-1403,6379,3667,-85,-7070,4601,1845,-2606,-6276,-6958,8428,4976,-1744,6892,-6385,6548,-8108,5297,-9224,467,7031,-8966,-2573,5523,783,-2162,-8296,6910,8307,-6930,-183,-3729,-7909,7516,-3296,-8950,-4807,9322,-5617,779,-3869,-5510,-340,2292,-5204,-1610,-2359,-9815,1691,-8817,2245,3164,3578,1960,7127,6895,-6078,-4678,-9298,8526,-8820,-8269,-7576,-8541,9522,-702,-8834,8173,4755,-7349,-3732,-4061,2038,-1879,-5639,2021,9741,9711,-526,844,-1592,6289,-9483,-9126,8556,1096,454,-4015,-2550,-5343,-5220,1269,-6233,6097,-6145,8278,-8723,-2095,6061,2042,1673,-3046,-6975,-8714,-2042,9315,9984,-3111,-3890,-3515,-1986,2230,9280,-7402,-3880,-2375,-949,911,503,-9122,2471,-194,7965,-7347,-6856,9980,-3096,2983,4104,1493,8916,-7468,-4545,-7666,-8168,-8708,-5901,-9714,-7831,6850,3293,-7252,3790,7691,-2825,6820,-2097,2151,4198,-1490,3222,4303,7887,-9840,280,-12,-7341,-2628,-4873,-9140,-7329,-1312,-7077,8374,1511,7322,7373,365,9022,-5813,-5322,5921,-8493,-5611,-2328,-34,9534,-1844,-9437,-2784,2798,-5717,-6540,-7927,-1220,7711,1476,268,6294,-6934,7932,8207,-5772,-9957,-1001,-8129,1517,1063,-3030,3626,-7624,-2463,2845,9879,-248,-7164,-3250,4434,2298,7695,9359,6445,-2766,-9441,-3322,9998,-9977,-2922,-3529,7345,8215,3148,-1608,-5809,795,9892,-9781,-4665,6817,1448,5127,-6119,-2687,-6173,2854,1896,-5632,5087,-4052,-6907,-5798,4953,-4924,4957,5720,6841,6296,-7922,9241,-3744,6013,-3674,3571,-3038,-9901,3927,8276,-6983,-5883,-3637,-8899,8496,-1953,-4317,-1553,4954,-4898,-6284,-1109,-9603,-9766,-1483,1728,6224,-2100,-4926,2453,2728,1235,7756,-6444,-2140,-9313,4608,-3129,5540,4530,6027,7867,6276,3419,6962,-7738,6189,-6330,8805,-8566,-8096,6333,9267,7069,7489,-1473,-2749,3434,-1869,7720,7076,3160,6474,8962,7423,21,-6678,9731,-436,-8844,-6580,5880,-7644,6671,-9026,-4829,-2388,-3349,4791,-6453,-4038,6556,9203,-9002,-8465,-7992,-1083,9142,8129,-4278,650,-5521,1956,7367,-754,-8377,9703,2562,3669,-1819,1227,374,-6288,-8775,-9725,-3031,7634,-7799,-1452,-5828,-1170,-3084,-2552,9482,808,2548,-9318,-6176,9990,-227,2607,5074,6352,-2122,-5556,8271,-1249,5379,3675,4365,2031,-4530,3497,-6767,9318,-8672,-5214,-8231,-1917,-431,-9575,-3357,1042,-5148,3250,-5781,-8764,-3106,-514,6477,-997,-2244,9975,2194,-4688,-8739,-7762,3703,-9688,440,-705,3728,6883,-1820,-1743,7839,-4517,8563,-8072,1352,-1597,5407,-8497,860,1892,1719,1680,582,-9336,-8024,-7267,4117,-9448,-4416,-9213,6868,438,7583,-2659,4306,-5567,-1397,-9045,-2243,-7384,-3035,1869,-1418,5196,-5117,-2091,-8063,-5015,-7319,-4566,9205,7480,2047,-6565,3681,1965,7174,3568,1168,5788,784,-799,8375,2586,-1161,-6574,-6729,2160,-7968,2760,-8147,2287,-8254,-1858,-3400,7785,2517,9564,3139,-220,-8029,-1039,490,1366,-9557,-6492,-423,6316,-1450,-2203,-5202,7459,3761,-4140,6700,5310,-7550,5795,-3881,-5641,-4728,-8457,-2633,-6995,2606,-2907,-5492,-8881,7969,-3564,-8300,-2156,-5513,-3808,-3778,7674,2438,1579,3277,-7481,-8005,-695,-1475,-3057,940,-5312,-231,7411,-7981,-5826,833,-7571,8746,-1137,3330,4233,9790,-4602,-5340,4131,2901,-8223,5525,-9217,6779,-8031,649,468,7280,-6336,-3783,8087,4591,-5726,3262,1049,-9295,-1316,4185,-8795,8537,7297,-3202,-1748,-9896,-5440,-9037,-6879,63,2676,-1285,5112,-9611,-5593,-6282,-4261,-5623,2213,7501,-2036,2769,2284,8297,-5480,6647,9451,-2954,-1211,5386,5861,-5324,-1799,3200,-7180,676,7125,-5138,-7544,-2535,5086,-4361,-8250,-4600,-1741,653,-776,-1406,-3692,6995,-3912,-8026,-8310,3610,1768,-2499,-8862,-1918,5470,8843,4290,-4905,-5679,-4382,4995,8200,-9958,3376,9659,8899,6836,-169,1211,510,-4651,8524,-4856,3128,6221,-6853,-7291,-9923,-6844,-5582,-317,9026,9658,-2225,-4156,-2930,4617,-8356,-6432,-8348,2098,9567,-3850,3725,9872,8732,8913,-2519,-5591,-2653,-2988,8734,9485,7180,2734,821,6218,-2553,9141,-4626,9380,64,6541,773,-401,2993,1553,-4426,-6227,3339,-4327,6310,6597,-7038,-7092,-8092,9938,-1213,8570,9982,7095,2076,-3666,1714,-3917,1292,-3222,117,-4700,-3827,-5225,6495,-235,1088,-7903,6089,2621,8591,-5280,-3438,-576,2326,5534,4723,-2864,4770,-8471,-9633,5696,-1320,9930,-774,5592,2039,-4718,2247,-9433,7491,-6841,1813,-6148,-7348,8048,2809,6120,2064,-459,1170,6216,-6605,-4579,-1616,1976,7642,7899,-5800,517,1178,1107,6893,4730,-2084,-4853,-7832,4294,8821,667,9585,4333,6110,3880,53,-2177,5957,-8728,-8142,-5940,7698,5568,-6158,4242,3847,2163,483,-8207,7022,-3579,-8345,-3639,4655,-4214,-7359,-8660,5621,5247,9707,-6727,2508,4025,-593,-5039,-664,-5988,-9335,5541,4866,413,6262,-9116,2396,-6552,-7690,2712,1052,5876,-5934,-5281,7449,1782,-9859,5007,-8107,-2024,4097,7808,-3840,1133,1730,-5644,8055,-6717,-1783,3723,-6806,76,-6803,-2860,7651,3002,-5862,4038,6704,6436,-5398,3807,2732,7754,-1291,-4971,-5814,6723,-5872,-1317,-1893,-8343,-6065,4473,-5028,-5450,7073,5878,8015,-7658,7276,-2500,8344,-6238,5232,8815,9061,1632,8776,-2830,32,-5146,-5538,-9924,-5141,1890,-4059,-3457,6401,9029,3707,-4447,7237,-6489,3396,-9306,-8260,-170,-5291,-7382,-983,-6045,5670,19,-796,279,9927,-1815,5565,-6657,-7473,-3407,-3211,602,5683,-888,6099,1854,-9264,-9856,-8482,3162,1003,-727,7508,7179,-7009,6746,-918,3346,508,-7533,-8139,-3123,2273,-9219,-2586,-4847,6096,2575,-8556,6217,-6372,-211,9441,2110,-6127,555,4024,-9971,660,5404,8638,6853,1196,8460,-9654,-3471,6231,-3723,-805,-1998,-4439,7099,-4242,-6513,-6757,-4604,-5318,-9218,-6195,7675,3086,521,3553,3260,969,748,-1158,-6418,-7629,7364,8982,-8292,9959,2272,2354,3661,-6135,-1855,-2508,-7232,699,8109,-6738,5694,-9208,351,4986,-1806,-682,-1607,-6668,-5602,7433,3649,6694,-7212,-5248,-7463,9851,3354,1275,-9312,682,2624,-9260,7783,9448,-2353,3977,-1360,-3475,387,8762,-4506,8413,8044,-7579,8390,1272,9944,6287,-8766,-894,4697,-2185,3199,-1340,-9838,-698,-1505,-6464,69,-55,9917,-2933,7687,3091,1228,9735,2429,8014,496,8793,9202,-6600,-3465,-4026,-9477,-5145,-4066,7131,-4931,8382,4805,-5779,5053,-2186,-9032,-304,8130,2731,7894,5999,-4947,4301,-660,2681,-5368,1060,9869,-2479,2276,-4605,-9905,6810,-4536,4261,-8349,7048,2950,-7179,-2974,5236,6203,8520,-586,-6447,-3843,8368,7829,2028,-5425,-1847,-9592,2939,-980,-4845,-445,5725,6172,-7284,-8506,6444,992,-1089,-998,3498,-8106,-7205,2691,1072,6227,-7265,-3725,3552,-1033,-6835,-7129,1287,-8490,-8565,1818,2369,-3583,-4087,4762,-4698,2842,4615,-5756,-4954,3502,-2382,-8196,-3962,-2829,-9407,-7523,4941,-1028,6953,-2195,2275,-1874,-4400,-9645,1435,2996,-6931,6046,-3640,-6897,-9886,-4501,-546,-10000,-9464,7217,8764,3348,1055,-4220,1083,6607,2489,6824,7432,520,4072,4783,-5994,7541,-3245,4014,9919,-7022,-2259,7425,6929,4589,6458,9548,606,-6515,-8438,5646,-7618,8180,-1287,-8633,-9563,8720,8849,1828,2527,9599,4815,-842,-2213,2052,8302,8085,-3907,-718,-3887,5666,-2417,6377,865,-6488,9264,8876,2400,3679,9551,-7648,-2915,6794,-6821,-4834,-9515,-3516,-2401,6653,-6940,877,7688,-6209,2425,-1654,-9984,4270,287,9820,-5357,-9352,-4399,5217,-4070,3453,6214,9803,-3951,-4425,8120,5017,8420,7465,3193,-4179,3777,-4120,-53,-3212,7228,-6196,4339,5835,5854,-9613,8071,3577,-6713,-618,1469,8005,-4928,-886,5946,-8071,-1891,7949,6987,-9525,7260,-1314,-7026,5388,1822,-3278,6440,5948,946,-8062,5904,3383,-3556,6720,-9027,108,-2700,-7229,-9200,4126,-9944,7910,1121,1495,9841,7036,-3815,-9854,4133,2412,-4000,2934,-6864,2212,9479,-4311,7514,-3339,-3418,-8198,-287,-1040,1239,1201,3546,-1504,5412,5158,-6111,2486,-4132,-9091,6400,5596,-4309,-4475,-9828,-4118,-6592,-234,9164,-2656,-878,-3029,-6320,-3544,-447,9819,-4020,7113,216,-5298,7886,6271,5611,486,-4792,1681,-8402,-6193,-9774,6728,3563,7846,8704,2669,-2629,7655,-3900,-4060,7356,7529,-6032,-9554,6356,6627,9706,1089,944,1938,7333,-6039,-5203,4166,-1564,-1139,9754,-1008,-2682,-3660,-4478,-725,-3352,498,8261,4904,1781,-4724,-8956,410,4689,-2088,852,-4653,-1294,2266,112,1934,-1896,7274,-9835,-8211,-8304,-3421,5313,9443,-8444,1774,4137,-8238,7640,4512,-1344,1545,-1223,5545,-9389,-3348,4300,-115,7230,-3520,3796,-6160,4352,4804,5345,-4373,-1437,-8263,-9484,-4817,244,9215,-8088,4312,938,-7548,4330,9753,7759,7973,-3812,6166,-6393,8335,6332,9435,4706,-8373,-4175,3881,6473,8874,8725,2444,5099,603,9523,-3231,-9290,5747,1207,-1750,8527,-5381,3586,5585,4271,6713,-1481,7463,-6949,7170,-448,8711,3366,-5554,4529,-1281,-6236,1344,-752,8857,2498,8604,1265,-7185,-2272,-943,-8720,6111,-3050,4442,8778,-9411,2418,-3039,-8622,6403,562,1046,907,-5411,-5342,9801,1270,6711,2232,-2755,-7257,1232,-713,-2555,-1571,-3127,9902,-1515,5679,-1448,-4636,6222,-8677,6149,-1489,-391,-7640,1625,-9372,7502,-550,6522,-5458,1373,9643,-5190,3208,1775,7904,-3570,-4046,7008,3637,-334,-2590,5853,2633,-5215,513,4091,-2991,1703,4292,-7378,-5685,756,-3870,6492,-9865,5884,4074,-8874,5054,-7303,-8291,8686,-4863,-5103,-8132,7947,5135,2206,7562,2779,4267,-1123,-9937,8657,8125,4807,-8902,5395,-5951,-7991,-7260,-9166,-3539,2819,6572,-5500,-2736,-4803,-7079,-4172,-2919,1803,-4472,870,3017,4817,9517,-5166,-7399,8901,6896,-9843,-1210,-4826,9916,5361,1039,5989,6031,-4192,1203,1798,-486,-2536,1689,6037,-3482,-3779,9060,1685,-3015,-3304,4388,-848,-9353,4253,-9254,7012,9785,-9792,9374,-7261,5356,-6490,-9562,-738,-337,2070,-4067,6034,9787,285,2533,3792,-6817,-1451,2747,7908,-6758,-3621,-1769,2180,-3449,-2372,6205,4859,-3858,-40,6188,9260,-9450,-8226,-1231,-9110,-714,-1233,-8887,8121,5078,9909,-7318,-2968,-2101,9480,1915,-8140,-7905,-41,2539,-1482,1350,-5042,-3536,-5955,-6604,4087,2989,8150,3364,6035,-5136,-3082,3352,-5653,7663,6150,-5622,2388,-3593,9855,514,-3021,7685,-589,-2712,425,-8368,-8255,1592,-9084,-2697,3773,8840,-4894,8544,9146,-3467,8641,-8112,8508,1071,9017,-2851,-438,4728,4913,-8855,-7562,-8079,-2484,-2543,-2515,-4233,3287,-126,4769,1011,-242,-3047,-8175,6029,9596,-8431,-2238,-9141,2567,-1979,-4782,4230,8873,6494,9440,-8006,-1781,-273,8922,-10,-4343,-6998,-8256,9033,-3789,-4043,8961,6197,-3905,-6026,-522,2358,-2913,4286,-430,-407,8193,5982,7281,-7309,-8424,-2799,-1678,-2175,-8754,5045,-3474,-2509,5151,4400,8092,3838,-7568,8914,7119,-4204,-1821,5439,-6598,-7607,-1460,-7226,7202,8628,-3343,1858,-9527,-9134,-5525,-3093,-1527,1523,5773,-2703,-4780,-6629,-6461,-8365,-1839,6138,-5056,-7995,1315,-7718,-626,-6335,-2073,2906,-9356,3994,20,-5892,6263,-2266,-3667,-8658,8685,-1244,-5437,-7436,726,4250,6092,2125,-8481,-3747,7350,2679,-2447,7485,3769,-7157,-3170,6257,7017,-8773,-4184,-7790,-5701,-1113,-7336,-1138,1293,4296,-91,85,5022,-4955,3554,7862,-9908,7644,9084,-3294,6999,488,2244,-7465,-120,-7934,-1037,-4494,-3271,-8535,-5086,209,-5805,9782,4586,2675,-2219,986,5171,1526,-8117,1210,-2636,-9846,-9608,6137,-4607,-4911,-9490,7540,-7208,716,1254,-256,-4629,5,-7670,-7006,6554,6624,-6399,-6937,6724,9047,7755,-3384,6935,6415,-295,8410,1414,8850,-4625,-9338,-7221,-2821,1905,-855,-941,4874,1817,5342,4163,-493,8419,735,2,-5979,4563,5199,2577,-2296,5594,-3506,-3275,3387,-2812,-3190,4842,-9683,-6876,-5489,-6831,-7695,3076,-5245,-9963,3205,-4082,-5878,1324,3242,-4154,1763,-437,5507,-3956,2651,-2002,-1795,4220,8581,-5583,9086,-2745,3495,-189,7109,-7371,-8704,1741,7616,-4158,-5578,8000,-3567,4951,5566,-6439,-1912,627,-2675,-4929,2816,2437,-386,6384,-8903,-4538,-3606,6258,5748,709,4006,-7835,-4358,-6379,-1687,6135,4515,1380,-4404,307,-285,-8990,-7986,2892,2494,-4445,-5506,-9196,2383,8311,-5018,-8901,-3468,2629,874,6082,-9734,5422,-6177,6969,-2706,-905,-3675,7285,3491,-3341,-6867,-7776,9503,6744,-7356,8252,6365,-735,4830,9618,6318,-4758,4775,4044,1819,-5038,-6900,8248,3961,7561,9945,-8539,-9053,5163,-884,7848,-5186,-7525,4877,-1832,-9128,-3611,5716,7537,4454,-4422,-9878,-5104,3344,4585,-6871,7970,-2867,-9631,-579,-7948,-7035,-6526,-7549,-4731,-4163,-5796,-97,7385,-7460,-925,-7538,18,7781,-6875,9067,3350,668,5070,8965,9204,-6108,5337,9710,5218,-4764,1369,-180,157,-3261,-843,2881,-6371,570,3832,6948,-6861,-3604,7183,-5271,-4031,-611,-4958,5115,188,5433,3273,6251,6943,5446,-6114,-3257,-6265,-6810,-5000,-4493,-2496,-7071,-5923,4855,9865,-5402,-9373,1309,-8436,-6972,1117,79,-4448,-5354,5109,-9729,1057,9207,9074,-7036,-1878,2614,1559,-4723,-4969,-2667,2641,2173,3471,1401,6028,-7366,8459,1471,-4968,8227,8998,1919,8525,7600,-2758,8907,4432,6635,-4799,-3417,6574,5869,4619,3224,-2861,-1814,5166,-2649,2694,9627,6376,-254,-8635,565,-9403,-1909,6311,691,3450,-9488,9996,7962,-9249,-5908,8749,580,1457,-6473,9953,-4648,-3173,4656,295,5842,3664,-3401,-651,-7912,960,8837,3952,-1679,3570,7943,-7678,-7557,-9101,-5916,-8648,1494,-9021,2899,-8640,-6201,5105,2595,6410,-1027,-1358,-7822,7558,9062,-3487,-4836,-9743,197,-9284,-7891,-8568,5380,-7774,9661,8289,8403,-3706,-6992,-49,1756,5903,1241,-7646,8583,-5428,-4352,6334,-433,9791,-8525,2061,-4359,1182,267,-6274,8593,-7355,5321,-9795,-2709,-7567,1327,-3635,-7088,-2452,1191,5500,7994,-7307,7868,-6750,-806,-903,851,-2993,8050,9175,7043,8945,-4550,1221,2784,9473,-3188,-3648,9983,-3946,1490,-763,-4993,3393,4802,-4135,-455,4852,3945,2050,5040,-7663,-8043,8871,7764,3426,8767,-9588,-5445,8430,7436,2949,6156,-2997,-7118,-9108,-558,-1784,-344,9048,-250,6983,-4917,6809,3340,5619,7084,-661,-6627,-7495,4380,-4548,6751,245,-1742,-4570,-3169,-3119,2818,2850,-4210,7986,-7062,9672,3195,-9270,-8981,7751,9957,-1801,-9952,1358,4654,9447,9388,4721,-8581,1065,-7338,-8654,5634,3120,-7688,-5353,9439,-2723,-3063,4391,-1930,2187,-8752,-8946,5144,-7173,3084,3862,-7904,-7900,-1167,215,5051,6219,8138,7895,2417,4848,-4868,7088,5333,-5606,-5162,-9797,9878,4761,-499,6045,-7388,-5857,4172,-8009,3261,-6022,-7511,22,-393,-2945,4746,4317,-4188,-3721,-2604,4965,-4531,3823,7617,1724,-9304,-3596,-2585,-766,2895,4302,5288,-6808,-6313,-5479,7709,6252,-1723,5717,6075,-7945,544,-8103,-6244,8538,-8838,642,1179,4821,-7881,9226,4221,2018,-4920,-7555,2873,-5894,-62,4060,-8889,7044,1112,6553,-6095,1806,3670,4659,-2574,-2517,-2404,-6520,2563,3243,-3131,5008,4635,2986,5699,6321,-68,-7985,-4293,-8013,5561,-4267,-8299,6973,-9663,-4036,-45,4792,-103,-1268,-7834,-1794,-6906,3991,-8770,3123,-5457,-1488,-7364,-5760,-6474,-8952,-1656,-9689,-2043,4554,8600,-1236,-4874,-4064,4134,-8500,273,7009,-2146,933,-3056,6125,-8445,7206,-7754,7913,-5405,1626,2329,4469,3214,-5285,-3638,-4562,7295,-9442,-6370,2617,-2941,7692,3034,6279,-5427,3136,2725,1313,3416,5570,-6541,-521,-8982,1998,-1175,5973,8712,7347,-3750,-6585,7538,-1005,5714,1325,-5309,-330,-7873,-3058,-105,5658,132,5956,-3176,5632,6112,-8422,753,-4130,-5859,7232,-6986,-7599,8696,476,-3070,-8789,4926,4868,-9773,-4208,3636,5280,5362,-1057,8924,-2192,8958,5738,-4307,-6188,3480,6435,-7253,-2034,2313,6261,-6763,8515,-5120,-7998,5778,-8240,1936,2226,-7698,2136,-1341,3357,7305,4273,-7877,-5512,-5523,3651,3865,-6612,9609,3538,305,1331,-6431,8612,-364,-3599,-2221,-1047,-5914,8542,1952,3111,8724,9132,683,-7887,6849,6344,5460,6972,1473,-9842,2720,-5592,2149,9219,2069,8993,2238,-6377,-3003,-536,-1184,-4496,-9235,-1911,2360,9021,-3774,9170,2376,737,4581,-3255,1243,-4815,-1782,-7471,9842,5645,9429,2678,-1163,8637,7672,-6945,-5009,-5938,6869,-162,-3530,876,-4290,-4827,-8383,8946,6152,6300,2537,5265,6650,-4716,-5708,-5462,-3223,4898,-609,7614,1615,-9457,-1209,-4398,2699,2227,-3652,2683,-3876,9933,6805,5164,-8134,-351,9856,-7276,6649,6715,-3764,1084,6291,250,-3073,2207,-3771,-1969,9907,7519,8268,2074,-4594,-3254,3112,966,-9138,4612,-2486,-7789,5931,-6088,-5325,-8630,-2571,9920,-9528,-5290,-6614,3804,1722,6940,511,5329,-1931,-4739,-4830,-9845,1884,8395,-5182,-4709,5536,3613,5609,9261,-506,2469,-2661,-6567,2183,-1667,8575,1676,8757,-9281,2024,-8003,8446,749,-4294,6865,-2480,-8685,3462,5616,2115,-6350,-9612,7064,4457,-6268,-9853,-6004,-1060,-8290,3602,-9537,-5194,5690,1115,-2133,-8727,-2137,7052,698,-2634,4864,-1632,949,-2589,6469,6204,6680,-8413,256,8057,-760,-6225,-1143,-3985,675,9395,9049,-6141,9758,2440,-2168,9391,2434,7716,-3490,7154,-9215,-444,-5821,2233,6609,541,-2389,8169,2912,2572,-7914,8854,-7206,-4831,1078,8831,-2439,-4438,5005,7426,8700,1364,2991,-9677,-1122,9594,-2814,-1259,2599,1759,8713,9265,8546,-5532,4713,-8544,-8998,-4946,-3445,-1889,-8582,-5296,4729,9328,2283,-8274,2201,1159,8088,-8469,-3981,6551,9250,-8173,5900,2746,4553,-8785,-7201,-8856,7400,-7770,-5640,-5081,-9229,-4357,-4730,9342,-3098,6629,2482,-2647,-8369,558,-8767,4046,3654,-2448,-9852,9991,-296,8325,-542,-8330,5546,-3055,3690,3745,-8589,-3290,2454,-7142,-5518,-6679,8304,4311,-4915,-1790,-484,-4662,5240,1591,1657,-6246,-2562,-4415,8324,-2857,-1313,-2086,869,829,9929,6054,3873,-820,4110,-3411,-6893,381,-6217,-1284,2741,-962,-667,-7956,-2718,4793,-6699,-3347,-6584,-2882,3254,-3616,-3626,-4367,-182,3816,3809,6942,1655,-2300,-4960,1695,-3511,-2526,533,7204,-9972,5301,-6499,-7452,-1078,4256,4851,-9066,-5391,315,-4784,-7074,2556,6566,3852,-9732,-282,9694,8866,2714,2328,-3101,-2363,1916,-3146,-8756,4426,1600,1487,7572,7137,5350,-2990,-830,2219,-428,-1715,-4567,7826,-7373,-3875,-8478,-4696,-3158,-3597,3103,3625,3827,7306,-4441,4908,7995,9553,-8572,-5647,-6292,-4884,-9889,-3739,-6698,9701,6274,5334,-4676,-2241,-3526,-5918,-3786,-4300,-9564,-9579,7830,4801,8808,7517,-5238,-3990,5263,-8788,-2298,-3324,2587,8466,2325,6348,6202,-1178,129,-8819,-7634,-4345,7834,-9921,7864,5478,1026,-483,4090,1735,6563,5037,-7625,2658,-7322,5255,3722,3440,-9409,4167,8378,-2406,-2026,5222,-5473,8285,5243,-7408,-5085,-8883,263,5315,3008,2597,-2380,-4786,-4453,-4314,-4823,-8275,5532,3207,-3042,-3657,-6783,4526,7300,-2422,184,6305,-2575,5055,8825,-6873,2751,-4460,-2054,-7971,-9014,-9390,-8555,5548,8064,-743,6897,1987,-9647,-3979,-7021,-3683,6259,2962,4578,3611,-9961,4227,-1256,8187,9274,-1347,-2813,3482,-6685,492,-5681,1881,196,-5787,5838,-5549,8277,3752,-6272,-1051,-9930,-8149,4187,-9758,8829,3217,1902,-2783,-6566,-6013,5745,-969,5737,952,4644,-7293,-7271,4606,-3459,1061,-1500,6800,-2357,-965,-8577,5633,-9913,-2087,2265,-8407,-7823,171,2611,-1993,-9833,3652,-2271,4863,7488,1692,-6851,-2595,-9746,-7075,7563,842,2722,2639,-8922,8074,-5683,7661,3259,9400,-5819,4446,1194,8887,1844,-6677,5351,-78,7481,9954,240,-7391,-9650,-2805,7487,-5605,1917,238,2534,-9180,720,9696,-8054,-9173,2958,4291,6710,-8342,-8052,8953,-4574,6688,-4049,8358,4537,-7777,4844,5221,-4957,4003,5704,6875,-9236,-1375,7457,6155,-84,6109,1455,-4745,-3961,6789,-5502,-5080,-1302,-2285,2342,7296,-5981,4245,-8602,8947,-7929,-2242,-5483,-5168,247,-9220,-6857,3265,-1279,-9877,-6568,-6010,3257,2711,-2319,-1144,1982,-3228,2703,-2920,8388,7244,-9307,-2444,-9195,2782,-1946,8137,-3882,-6182,-6809,-4640,-1963,6637,-7398,-7893,3886,3080,2459,-5999,-8328,-3759,1801,-9787,5320,6524,3801,3331,3343,-5931,3968,1045,5557,-8563,4243,-9951,-5084,-8969,9217,-3860,-9363,9286,-7480,6795,3802,974,1932,-3958,-6470,-6637,474,8545,-6705,3188,4993,6132,3319,-7595,-202,5959,-2908,3125,-3833,8705,-161,-8399,6004,-8426,-2576,-6773,-1587,-5406,2171,-4096,8898,6571,83,8688,-271,-4427,-3562,-2786,-6407,-4092,-669,-8318,-8214,-7782,8940,-4652,-7665,9717,8839,5278,-3415,-2894,-2060,-2278,-1935,-4178,-6525,-708,-300,9419,8056,9133,-666,5159,-1507,-675,-6126,5855,9794,-4011,8689,2569,4124,1394,-535,5945,-5959,-8191,-7110,9958,-9028,-9568,-9142,3759,-6997,-2796,-731,-9145,1891,5140,-9419,-6805,4653,3757,-58,6555,727,7144,-1627,-9763,9512,9692,6406,-5743,-6293,-4535,8875,-1861,8111,5281,-1995,5898,3314,6521,-9513,-8325,-2898,-27,867,5340,-7731,4962,-7014,1261,8703,-8641,-5920,9001,-2081,-2583,-9163,-9072,-1673,9183,-5921,-9801,-8557,-7058,9094,-7712,-173,-1725,6928,-3043,4763,3972,-265,-528,-9349,4894,-1675,-4808,-1554,-8030,1214,3975,-9152,-2164,5066,4281,9732,9533,-9445,-3162,-6106,-7198,-4528,8754,-9471,-1881,2598,780,1260,4959,7253,-7978,-2472,3958,-5272,4145,-1509,-3344,9876,-1978,-4354,-8949,7068,7374,-4581,-7536,9098,-5069,7085,-6828,-1165,8817,-8462,-5572,-9989,-6774,4682,7157,4162,-6878,1007,902,4580,6016,5663,8601,-9009,5519,7876,-1288,2627,-8608,5816,-4025,9188,-5535,1062,-9239,-2710,7816,2071,9639,7121,-214,4241,6549,5432,5950,8848,-2291,-9669,-1729,-3542,-9998,7774,5097,-9609,8094,-6428,-1774,998,8299,-5792,-3909,-5942,13,-9541,8232,5465,836,-3574,2646,-7694,-3434,-5712,4490,-7785,-8710,1671,9540,4418,3803,3386,6072,574,-2093,4784,4340,-3913,4223,9144,6511,-8115,3856,-5128,5102,-9102,-9189,6275,-7844,-7288,-797,7324,4518,8832,-3273,-5143,5703,8165,-3108,-394,5930,8424,6589,-1099,249,6357,5096,-4935,9358,2938,9764,2859,9327,-3533,-4433,5610,176,-1699,4521,-5645,-6908,-4456,-316,-2627,-7233,4260,-8050,99,1853,1111,8984,6590,-1570,3587,9700,2191,2871,-4145,-6613,-4805,7580,-3577,-3175,-6294,-2028,3174,-5587,6008,4602,2094,7587,-2644,-6811,7147,-5003,-5393,4681,-7503,-7850,-5485,5874,-1392,8738,-3036,862,7225,8155,-8141,-7917,9912,3660,-1754,-2158,1739,8427,4727,9397,-4922,1402,-9646,3014,1799,8328,9890,7456,1446,5455,3022,-3333,-9466,3209,3544,3494,-6529,-6357,9724,-8715,-7135,-9420,2218,997,-7459,2239,2195,-9830,-9186,4647,3507,-3288,-7713,-4632,-8866,-2247,-6316,-4882,1213,5335,-1997,2419,-9959,269,-2560,346,-9201,161,-9364,-2539,2082,-8162,8613,4430,7422,5374,-4513,2241,-8396,-3983,-8316,-7943,4344,-5129,1447,3140,-451,-5347,-5329,8412,-7324,5197,475,1462,6160,6730,-3167,-1851,-614,43,2426,9057,1963,1443,-3819,7186,897,-3785,-7358,-6691,-6745,122,-324,7326,899,255,7139,3605,178,-1094,3678,5444,-6518,-8712,389,-2999,4882,-19,3821,5769,-8690,4419,5885,-2527,4121,-2530,-8794,-8483,-8172,5143,-7990,-9279,3173,7757,-9862,9582,-6563,-1366,6249,7342,-7328,4178,5960,6398,5809,-1808,2733,803,309,-8485,-2356,-8122,-809,-5619,2853,-4557,-9761,3588,-3629,7496,-208,-3099,-8167,-5446,1467,191,5977,2126,-4927,-5650,-3137,5677,-6181,1255,-3886,1841,-8841,7891,5169,355,-5709,-5909,-4008,6614,-9095,-7404,-7553,-1362,-6840,-5839,2296,6196,5805,-1615,-1938,-408,4599,4480,-4487,4148,5971,-1133,-2210,4966,-5213,1923,6083,2951,-5222,9615,-6709,4974,9684,-4522,-7654,-8419,5491,6042,-7650,3110,-2815,-3016,-6623,9501,-4720,-3877,-7450,-3286,8830,-9459,-5815,4440,-8875,549,-4033,1037,6077,4984,5867,-9096,-9308,-2464,-2231,-8748,-758,7289,-7901,-3423,-8035,3987,-9071,-5865,6055,7390,2288,-9212,6955,-9461,4076,2877,-6528,-5983,5148,-5188,-5366,4550,8607,8647,-4420,5937,7509,-2465,9848,9471,-5570,6737,-7699,-916,-457,2846,3658,9092,6508,2564,-1387,-6255,-9505,-4419,9467,-6671,-8261,-2368,-9467,-1234,6033,8996,-3302,4323,-801,-851,-9413,7880,-1084,-2105,3263,-7033,1705,-7924,3788,-2423,-3519,4453,6451,-6979,-9374,-2668,-5827,4497,4598,8076,6308,217,6388,2543,-3253,-8384,-7441,-822,-5924,554,-640,-1733,-4411,9211,2165,-7136,9007,-7672,651,9410,-2365,-4193,-1296,-4821,-627,-6910,-5420,316,-8599,9493,5367,9751,5576,8046,3956,-11,4836,3666,-6716,-7078,7582,7748,-4410,9291,-9510,713,4510,-3624,-2385,-5408,3733,7607,4719,7166,-7315,-6640,-5550,5899,-2501,-1755,-1623,2432,7636,-274,9173,-8936,8770,-7381,6717,-75,-6766,-4842,3726,2600,2847,6199,-1547,-9268,9356,-4768,2829,-4333,260,6870,3072,-3820,6505,-1337,991,-2559,506,6465,8075,5501,3073,9547,1503,-6642,-8552,-8429,8398,8362,-5358,3621,-7435,-4054,8397,-3227,-3429,4392,5600,-6562,6131,-7277,-7237,5405,-5277,4175,-3380,8877,6839,6245,8236,-2961,-5230,7917,4924,3674,-9481,5684,7442,999,5004,-4013,-176,-4573,5129,-6787,-6052,-3765,-3470,7936,-3403,-5,-8346,4007,5766,5214,-3002,8897,1745,-3925,531,-7211,2099,-7279,-136,-9146,9994,-9534,4579,-5516,6129,-7671,9922,-3794,7595,-8257,2019,609,6431,9194,-5044,6359,-5459,7762,5724,4732,-4381,-6775,2530,-7563,4884,2350,1577,8017,9193,-1664,3877,9085,-3868,-8559,-2809,-4023,-3585,841,-5573,-6342,8846,-1652,9008,7853,-6017,5824,-2827,-3993,-5083,3697,-2188,9824,2748,-6772,-1703,3593,-7368,-7962,-1267,7941,5979,-181,6269,-2394,1662,-7098,6922,-9329,8379,6890,-1674,-5652,7143,-3587,-1577,2386,723,-1859,2067,8503,1789,-1379,-3277,-5481,4950,3438,-1216,1602,906,5274,442,8320,-8721,-3712,4611,-3444,6600,-3878,-2759,4195,645,-5253,-5227,4127,4415,-2314,-5777,1779,-8165,2323,-1846,6437,-7354,4964,-9046,-4138,-7305,8035,-3391,951,7371,1012,-5748,-3024,2488,6573,-9806,-6003,9162,-9428,-4134,-9077,-2802,1797,1701,3443,7686,1154,6803,-7419,-6827,-846,-8807,-5207,8228,-2220,-6157,-9872,-2258,7626,664,5913,3088,2750,571,-3097,-42,-5362,-8783,-906,-5193,-7631,5245,1971,-1676,7818,1831,3135,-6670,-4944,8745,807,-7456,3104,-8278,1067,6157,-5077,9438,-3125,-625,-7637,875,2002,634,-9818,7387,-2881,8436,4343,3165,2166,-8916,-8228,6923,-7931,3235,-8892,-1350,133,7821,-3855,568,7875,-1520,-4719,-9847,-4254,9888,5849,-9221,-7669,-5319,8440,5881,7129,-6719,-3558,-6200,2531,-1941,5062,7233,9481,635,-7518,5968,-6957,-6307,-6683,-8087,-9643,-4877,-9813,-4970,3001,-2582,-2616,-5626,-3942,2015,2455,-288,9452,2301,416,-5126,-9738,5403,8465,9362,2659,830,884,2020,-6684,-831,5414,-7623,8910,2954,-591,-7413,-4822,4506,7116,-193,-497,-6261,-4029,-2147,-5659,-5629,-6572,-1171,2988,-4904,8481,2300,-4963,-2124,1087,6916,-7781,-3395,8476,-69,-5910,-3836,3601,-8047,9461,8338,9709,-2334,8906,-6948,-1526,-6628,2984,5531,449,-5861,4797,8977,1585,525,-3818,-2835,7884,-6363,4435,-5579,-3628,5290,6924,1430,-6558,9437,-2956,-2840,9905,-7412,-9033,6908,6463,7565,-874,-7913,-6946,9416,2492,4403,2706,1790,4780,-6509,-5031,2404,5837,5424,-3023,4335,-4183,-3370,-1351,-4790,7007,8680,-9918,-1605,7560,-9059,-1432,-3132,6781,-2770,4346,-6321,4824,300,-518,9702,-3367,9821,9106,6825,-2433,3332,-8124,-2370,8851,647,-5543,-9566,-8517,706,7811,9807,-9892,5801,-737,-403,60,-6163,8115,7833,-4044,-7093,-3104,9375,-3722,4372,40,-9019,-1199,-6133,5829,-2655,-7702,7269,5230,7302,1442,-712,5192,8100,-8098,-7437,-35,-4069,7804,-8113,2501,715,7605,-7416,7729,2813,-5637,-6427,-8130,5895,5493,-7641,-6164,8247,4030,-6794,-3331,-3950,-896,5343,6611,-236,-4866,6678,-9519,-9427,1567,7648,-7278,-7055,6360,-4736,1731,-8631,-8069,-1531,9500,-9434,-2744,-6168,505,7652,3744,-1307,-8334,4541,3070,-4259,-9038,-4073,-4034,6900,-868,5153,-5949,1814,-1002,-5706,759,6254,-7176,-4393,3131,5681,3153,8241,-6264,9302,3282,6301,-5727,-6478,-9635,35,358,6732,6000,978,459,5123,2208,4987,-4627,1833,-1512,7602,-3842,4275,7081,-807,4083,-5925,4324,-3425,-1414,-2806,9404,6302,1338,5185,4930,9928,7872,-6736,6991,-3412,-9621,9249,-7317,-4091,-9029,4027,414,9995,-3625,1811,408,-4093,199,9644,-6797,3841,-6546,6734,-2494,-4951,6550,4140,-6854,1479,5211,3218,-4886,9683,1715,537,6558,7405,3718,335,6708,6506,471,820,-9497,-8100,-8816,-5961,8791,5719,3770,-7,7543,5743,8396,8364,-3550,1276,-8023,-6714,-7597,-2969,-2879,-5154,-8833,-239,-8693,7417,-4489,-2876,-7679,66,-9704,5623,-2762,3069,9156,-2505,-2680,-5273,3175,-1459,-759,3035,4277,3229,772,3867,-1014,-1649,7993,-7478,-8475,578,9236,5167,-6430,6141,3529,-8623,-8621,-3728,5191,3635,-9194,9024,5582,-9274,-4580,2625,-6221,-7778,4968,-1804,3345,8743,5482,-9785,6516,1263,5994,585,-1646,-6807,-2373,-7661,1990,-8870,-2782,-8591,7353,-5635,7472,3914,6888,-657,-624,4222,-9884,-6689,3154,-2000,-7061,3117,-6704,4101,-1222,-9256,-3757,-5877,-829,-9004,-9273,5942,175,-4976,-414,9233,-3260,-63,-2981,5796,8451,-907,5083,-5268,-1651,1562,5528,-3464,3979,-1243,8135,8348,7097,7528,-594,-3079,9829,-2308,-4902,7486,-1700,9970,-1906,1419,-8409,4421,-5278,-9993,4004,3211,-5730,-1224,2073,7815,-6404,-5553,770,1518,-7004,8533,1755,2791,-8182,-9786,-6575,-6220,5815,4862,8580,-2001,-5812,-6521,9854,3143,-9190,-2510,-8683,-1599,8981,-644,-9996,-8592,9516,9417,-4372,8066,8886,-8804,4812,9845,-2481,-336,-3598,-2280,-249,9798,3511,-2171,6186,-3658,-4430,8938,3465,7550,3526,-7443,6193,8852,6009,7192,2258,-4483,4517,6582,-4316,7747,-812,9317,4206,1586,724,-1359,-6929,-7728,-3595,-1118,-404,-2108,9962,-2120,1641,-1237,1066,3687,-1442,2591,6493,-4919,-4560,-9302,2838,-554,652,-8674,879,-51,-879,827,-6866,3305,5962,7625,-7464,4989,2839,7939,-6633,4903,-7866,-4,-7049,-2489,-1567,1138,-3966,799,6312,3132,7344,5537,6697,-2937,-4162,7168,-569,-3656,2942,4356,-1321,-7051,-5975,9757,-4161,5781,6030,7730,-8074,4698,3075,9511,3422,3098,5093,9050,-4245,-6448,-8835,-1420,324,-2067,-4778,-1710,7623,4662,-740,-2215,6719,2476,-1737,9434,731,-6213,1837,-3005,-2283,-6256,-1277,3717,6076,3309,7684,9303,-3751,5276,-3381,28,8587,2915,2092,-6061,2306,-2516,-1726,9102,-3426,968,8931,-3189,-3655,9325,121,9507,8175,-963,7656,-32,3114,-5269,7665,-1895,8104,275,6880,8019,-852,1878,-3484,5189,3535,-6960,4093,-3929,-7213,3633,-8719,-4037,5986,8148,366,6320,-5739,-5977,-6,-4016,7660,-9041,3146,-6651,9864,566,2428,9536,-7428,-6770,8880,5466,6769,9289,-516,-489,-2724,-2190,519,-7162,-467,-2052,-6618,-7760,6292,-4525,-5790,6058,6798,528,2999,139,9116,4008,5818,-6097,-219,9502,-5208,-7755,-8126,-2664,8003,-3258,9613,-885,5713,1222,-7651,-6848,-5688,-7775,985,-9637,4557,-9812,-5720,550,-4100,1769,1171,6652,1130,1445,-8271,1184,7453,1732,4532,-3118,-7742,3388,-670,-883,-989,-9657,2907,4129,-7798,9005,-4870,7742,-8812,1303,3056,-8111,6884,8101,4880,2825,4000,-3074,-2301,-7144,-9113,937,-2537,-4292,3016,-5283,778,2032,4758,9352,-8994,-4995,2560,9244,4938,341,5139,3971,-2887,-719,-9716,-2637,304,-9346,-7614,6766,-8546,-3699,7454,-4146,4992,4860,4879,-930,1422,-7792,8008,-722,-4353,-511,2981,-4921,3861,8067,266,6347,-496,6176,-3249,-9031,-2761,3071,8976,-4452,-9817,-4775,-4287,-9694,4925,-9421,3521,7438,2081,-434,5227,7316,-6965,-6830,-5121,-5891,7126,2781,4345,6416,885,-1041,4203,6115,-680,5637,9777,-3345,-3928,194,6062,-5666,3607,8671,4508,-4541,4455,4623,1587,1927,-5958,9068,-4045,-7892,-6782,-865,5686,4084,-8904,-9973,3347,-8743,-8951,6676,2507,7167,-2641,9172,8779,-157,6050,-1461,-3973,8305,-8668,-1168,3964,-6174,5924,819,-9309,5033,5618,-74,5082,2148,-5258,-2673,-583,6319,-4424,4895,103,-286,2490,7863,2123,4794,-2950,8555,-4791,-6118,336,-6681,2768,3830,-3641,-2418,-8848,-6055,4171,-595,-6667,6280,-5471,5355,-5575,-2780,2524,-3252,-6916,733,6861,-863,-873,-7733,-5172,-710,-3427,-6242,-7137,-3489,-8048,-1524,7445,-9426,1802,4080,-9981,-9711,5077,7265,-4144,-7759,1918,7990,-1301,5984,-7711,-6359,8334,-3957,7483,5551,6496,-6223,-5574,697,-2431,-1433,7968,-9119,835,5892,1025,6699,-5725,9176,8394,3859,4020,-5585,-3279,-9827,2685,-2497,1532,6944,7763,3915,-4860,-2564,2331,6162,-3994,-1484,3342,3631,-5555,-7627,1629,6913,1800,9411,-6367,-3798,1282,3603,-6150,8989,193,-474,9852,-6068,-9705,-7826,6687,5722,-9794,-3896,3392,-751,-4732,-5158,-6799,-5019,6130,-4497,-6496,-7816,1284,-5030,-1871,4757,-1154,2540,-468,7942,-3535,-2773,2861,-9580,1136,-6743,-6732,9628,5524,-8805,3321,3138,-8797,-7272,-1159,5068,206,1851,-7715,8882,-6617,8244,-5314,4404,5225,728,-8395,8219,849,3627,-357,-9542,9031,-8973,-5034,9728,-8687,-2625,2654,6340,-4226,-6134,-7960,-7259,3107,-9755,7376,1882,-9480,739,-8613,-144,5443,-1976,3677,6874,-1240,-70,8577,330,9630,-4682,-5242,1223,5020,-9345,2740,-5067,-6120,-6720,8921,7836,2568,8963,5013,8927,5554,-5869,-8813,-3848,-5409,-6734,-2299,-9079,1058,-2392,-4982,-746,6656,1627,407,-2459,-3742,-4431,-3714,9432,-5998,-8265,-5043,-2518,-4251,3582,8152,9262,-8993,9923,5300,3938,3163,-2901,-7541,-7350,-9061,-4170,-732,9832,5257,4919,4255,4349,-4326,1074,1206,7854,-3110,2579,959,-269,3731,-4809,-3450,5494,9394,54,-6726,-2594,6253,-1807,2496,7750,1396,-8248,-9052,-1747,5991,575,9817,6677,6793,-5687,-6933,7599,2034,971,-2774,2857,4032,-6245,-8298,-1758,-1720,-9396,1524,3581,-5705,6081,1894,-2250,-2119,5061,2701,-5364,2059,-7007,7760,-1189,3283,-9193,-6586,7187,-6710,5308,4470,8291,2735,5131,9556,-6484,1683,-4880,8492,7435,729,-6144,9387,-2934,-1521,7975,6937,8464,9623,-8109,4646,-2255,4650,-616,-6711,-5970,1642,-9130,-4864,5513,1764,6535,1386,5680,-2362,-6804,-8321,-5963,-3233,4502,-8202,-508,670,6167,-6901,-3248,-4206,1477,-7128,7283,-9616,-4277,-2228,-9954,7920,-1641,-1182,2788,-2578,8442,-2626,-5286,4878,3738,766,-683,-9978,5106,3375,-101,6349,-8344,1399,9449,-1805,3484,-1843,1299,7526,1140,294,-2811,109,-7289,-8519,4691,-9202,9282,-3383,-5562,-1357,3152,-4631,9002,-9810,-915,7777,-5973,-2646,4058,5961,-2227,-2282,8047,8500,7161,5461,-9599,8505,4378,-5823,6668,-9234,-3976,-2906,-4980,4184,6536,-6011,-2572,-5191,5653,7059,-4027,-7103,8123,-6596,-9222,2997,-6381,-7509,-7155,7399,-9814,719,9240,-974,1294,9513,-911,-2924,-6029,89,6636,-8593,-8350,-6451,-4344,6974,218,2321,5103,-6838,-4148,-6834,4231,-9043,-3940,6904,-9507,9235,7666,8159,-3428,7218,93,-4076,-7752,9931,9686,-1120,2223,393,1720,2264,-4504,8177,1453,-6084,-6956,-3974,8447,-4797,-1140,-3982,8645,-8101,-9097,4188,-4191,1520,8935,4627,8373,2965,-1802,3743,6833,2280,610,6409,7397,1757,823,2653,-3859,153,-2467,7208,4948,-6187,5811,-850,-4684,-6471,9538,-9133,-4081,3858,2129,-7312,3970,-864,-1032,-1939,310,-2344,6623,9153,2603,8006,-307,-4568,-1066,-6656,-8360,-2409,717,3430,-8208,6646,-2832,1810,-837,7676,2315,-7140,4157,9736,-808,5373,-1972,-6228,1788,4360,9038,1983,8971,-2487,-399,4826,-7572,1659,3415,1839,9504,8105,8599,-1566,-9722,-9267,8835,-9682,-7102,5208,9993,-2532,-7240,-3267,-5469,8283,-233,7888,2190,-5423,-6216,7292,-1765,9636,708,2355,4876,9999,3781,6748,5385,-3088,740,-7983,-3141,3512,6439,8836,4500,5790,6859,-8322,8133,6641,-5976,2835,5934,-150,6755,-8281,-3814,3168,-6993,-5915,1679,5807,-9821,4839,9333,8519,-4299,-4131,-7894,9464,730,-3466,-1092,1208,-653,1644,-5818,-1634,-5784,-4876,-2393,5354,4902,-691,-3086,-617,-769,4712,-2546,2513,-9016,-6094,-380,-847,-895,9871,-7040,67,-7418,-2817,-1146,4240,-6923,4112,2952,-898,5330,-8423,7654,-1621,3323,-6769,-2180,-2921,-8287,3572,9689,7633,-6874,7791,-4910,-9804,-515,9793,6815,-8840,2424,5560,9390,3870,5352,-411,6662,-7121,8972,-7780,-4218,1119,-977,5418,-1026,-398,828,1449,6612,-9882,4450,-3740,5226,-1562,-4819,-9443,-4252,1733,-172,-861,-5254,-2145,-5124,6538,2852,-2166,-4714,2334,4123,1863,2297,-7705,7898,7370,-1826,-7824,-306,-9289,-9325,3947,1913,956,2216,-9355,7243,2767,2931,-7878,4670,3302,1504,-8359,3758,-9956,8627,-9207,1291,806,-3177,-203,509,6200,7737,-9928,-6390,-294,-7218,-4196,-8220,-9233,2124,-7747,-7864,8739,-2435,-7080,-9994,-5905,-3632,-9435,-5142,1535,3706,5242,643,-4885,8513,9765,-2654,-3451,5184,3860,5741,5647,-6197,-5244,4288,-4609,-8736,5821,8486,-6912,-4498,3445,-3238,6171,1942,3944,-3439,4630,4118,8140,2353,8245,-1069,9234,6510,-4001,587,-1068,-6240,2016,4886,7150,2343,-7002,2236,-6382,-8091,9371,-5135,-2742,-3365,2282,-520,6775,4409,1888,1992,6899,403,-1779,5671,411,-5759,-9398,-8799,2356,-1563,9671,2682,5655,-1082,2673,2947,-2377,-9275,-4999,-4383,-3435,2634,-819,-2046,9496,3042,-8452,-7165,-3822,3905,-5728,5101,5845,-3236,-9933,-4534,-9870,-5497,8079,3612,8634,-3787,-2525,-6329,5639,-897,-47,-9880,7718,5435,-9783,-6219,6672,-8659,5396,-7818,-2603,-9857,-4356,3844,7554,-460,8781,-7202,-5180,-2160,6782,1257,8768,-2785,5175,3616,-9874,7812,7173,-5123,-9712,8214,-2351,-6531,-3473,-6751,8058,7415,5110,9831,-46,-5070,-1422,4016,-5228,3786,-7487,-135,1807,-4275,-2631,8954,2214,529,7060,9900,7984,-6250,-2106,-1719,-9187,2925,-2123,-1474,1073,9382,-8920,3890,3598,942,1123,5277,-4862,-3431,-94,-6503,1636,6353,6168,-5804,-1322,-1766,-5754,3536,-3274,8772,1491,8660,-2070,-1494,1451,4838,6855,908,-7584,1186,-20,5828,8013,-1838,3657,-8125,1742,7201,-5832,8296,-5529,5498,-1469,-9259,147,-7811,4251,-6262,8151,5456,1549,-5433,2713,4013,1022,5468,-7501,5071,6934,2461,-5333,9237,1199,-4225,-6463,-4660,-5621,-2580,-6341,-3697,9412,9446,3284,5094,7937,-6113,-5551,4636,-1888,-919,-6162,-4115,148,439,5758,-1959,5450,7450,-2293,-4505,-2953,-9967,2723,-5431,5488,-1708,401,-1598,6626,1870,-3388,8033,-9227,-9391,-4332,-228,-1246,-7800,8103,9310,-6376,-3193,-7504,-8095,2481,7733,1758,-3014,-9082,-6066,6229,-164,7522,-1643,-8930,1786,5539,195,42,-7621,-7574,-4103,4142,7384,-4014,9091,272,-6855,-3984,-2482,-3496,6651,9314,-2584,-1622,2480,2228,-9003,-7375,-2676,3433,-9718,-9888,-6690,9805,1174,7934,3151,-131,5285,-4712,361,-2980,7053,9926,-7772,-1141,462,5398,9715,299,-4701,-33,6088,8895,-6820,2736,4338,1855,-225,5981,4856,1962,-7099,-5430,-2076,-7899,4927,-5218,2041,-6456,-8477,5732,-7197,-3931,-7580,5237,-2267,-2305,-902,7366,-102,5264,9145,3727,-5052,-4375,-3215,590,9966,-4891,-5496,-8885,8437,2079,3928,8011,-7704,1622,73,-8923,-5022,3179,4226,-4820,-7748,5306,-3080,3180,9747,4048,5459,-5097,-5394,6618,2385,1118,-3161,7739,677,-4837,3990,-1580,-8811,4896,-5661,-2996,-4390,-7111,-530,-5229,-790,7713,-6263,7199,-4981,5025,-7564,-167,3955,2373,-3335,6107,-4409,5133,-388,6052,-970,5267,98,481,-8145,8322,2719,-5338,-1228,811,1865,6831,94,-8793,4680,6064,-9807,1594,1872,1357,-358,-7692,-8473,4422,-1235,6593,4051,-5378,-6977,3096,2100,34,-381,2135,-9357,8377,7200,-5064,4321,-5505,5947,3397,5294,3009,5120,672,791,-3312,1437,-6149,9377,7258,-1413,3425,3156,-4841,-8826,-8941,-2566,5183,-2211,8978,-9969,-2764,5914,7721,-8076,7938,9772,-8697,-4303,-7299,6578,-5838,4088,-4123,-5236,-4133,-9047,9423,6351,-333,-8880,-6423,3569,-5144,-946,-2756,-2468,-1648,-5247,-5413,8254,9158,7989,995,-7540,6065,8678,-2650,5983,5258,-4117,2689,3776,-1502,-3547,-6505,8256,-4168,-741,3246,-2715,-8948,-4743,-1093,4675,8040,5075,5448,-9589,2994,-1164,1458,-7556,923,3686,-8341,-5096,-7153,9099,-7281,1355,-4892,2941,-7109,3909,-4319,2193,-4412,-8164,-2378,7510,-9090,6690,-2442,-7608,2644,-1106,-7977,-9423,8176,4293,6270,-7863,-3295,4477,1441,4389,-4432,8477,-5490,-3251,5678,5710,-3580,-6204,4686,-9393,5044,5016,2944,-77,223,-7802,-1303,5377,8651,-5392,7358,-8066,4205,-9535,4749,5770,-1630,5287,-5008,4429,-2332,3599,1795,6460,-3594,-6978,9880,-8847,1304,-6125,-2613,-1989,-1173,7835,8809,-5147,-6826,7190,5449,-7242,-241,-6479,3782,-1250,2229,-5945,-671,-5041,6664,9789,7271,1082,-305,290... 57793 more chars

失败测试

法一:暴力迭代法。空间复杂度 O(1),时间复杂度 O(n^2)。

2020/08/12 - 超出时间限制

class Solution:def containsNearbyAlmostDuplicate(self, nums: List[int], k: int, t: int) -> bool:n = len(nums)for i in range(n):  # 遍历数组for j in range(k+1):  # 可变范围if (i+j >= n) or (i == i+j):  # 超出范围/索引重合 立即结束本次continueif abs(nums[i]-nums[i+j]) <= t:  # 满足要求return Truereturn False

官方实现与说明

// Java implementation
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {for (int i = 0; i < nums.length; ++i) {for (int j = Math.max(i - k, 0); j < i; ++j) {if (Math.abs(nums[i] - nums[j]) <= t) return true;}}return false;
}
// Time limit exceeded.


# 严重左偏的非平衡二叉搜索树举例6/5/4/3/2/1

# 一棵平衡的二叉搜索树举例4/   \2     6/ \   /1   3  5

// Java implementation
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {TreeSet<Integer> set = new TreeSet<>();  // 这个 TreeSet 在 Python 标准库没有!for (int i = 0; i < nums.length; ++i) {// Find the successor of current elementInteger s = set.ceiling(nums[i]);if (s != null && s <= nums[i] + t) return true;// Find the predecessor of current elementInteger g = set.floor(nums[i]);if (g != null && nums[i] <= g + t) return true;set.add(nums[i]);if (set.size() > k) {set.remove(nums[i - k]);}}return false;
}

// C++ implementation
class Solution {
public:bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {set<int> s;for (int i = 0; i < nums.size(); ++i) {auto lower = s.lower_bound(nums[i]);if (lower != s.end() && *lower <= nums[i] + t) return true;auto upper = s.upper_bound(nums[i]);if (upper != s.begin() && nums[i] <= *--upper + t) return true; // upper 为 s.begin() 时说明查找结果为空s.insert(nums[i]);if (s.size() > k) s.erase(nums[i - k]);}return false;}
};


// Java implementation
public class Solution {// Get the ID of the bucket from element value x and bucket width w// In Java, `-3 / 5 = 0` and but we need `-3 / 5 = -1`.private long getID(long x, long w) {return x < 0 ? (x + 1) / w - 1 : x / w;}public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {if (t < 0) return false;Map<Long, Long> d = new HashMap<>();long w = (long)t + 1;for (int i = 0; i < nums.length; ++i) {long m = getID(nums[i], w);// check if bucket m is empty, each bucket may contain at most one elementif (d.containsKey(m))return true;// check the nei***or buckets for almost duplicateif (d.containsKey(m - 1) && Math.abs(nums[i] - d.get(m - 1)) < w)return true;if (d.containsKey(m + 1) && Math.abs(nums[i] - d.get(m + 1)) < w)return true;// now bucket m is empty and no almost duplicate in nei***or bucketsd.put(m, (long)nums[i]);if (i >= k) d.remove(getID(nums[i - k], w));}return false;}
}


其他实现与说明 - 桶排序

class Solution:def containsNearbyAlmostDuplicate(self, nums: List[int], k: int, t: int) -> bool:if t < 0 or k < 0:return Falseall_buckets = {}  # 使用 dict 充当 bucketsbucket_size = t + 1  # 桶的大小设成 t+1 更加方便for i in range(len(nums)):# 放入桶号索引, 这样同一桶内数字最多相差 t, 相邻桶内数字最多相差 2*t-1, 其余不考虑bucket_index = nums[i] // bucket_size # 若桶中已经有元素了, 则将同时满足 t 和 k 条件, 返回 Trueif bucket_index in all_buckets:       return True# 把nums[i]放入桶中all_buckets[bucket_index] = nums[i]   # 检查前一个桶, 若有元素则满足 k 条件, 需要再确定 t 条件if (bucket_index-1) in all_buckets and abs(all_buckets[bucket_index-1] - nums[i]) <= t: return True# 检查后一个桶, 若有元素则满足 k 条件, 需要再确定 t 条件if (bucket_index+1) in all_buckets and abs(all_buckets[bucket_index+1] - nums[i]) <= t: return True# 若不构成返回条件, 那么当 i >= k 时就要删除旧桶,# 以维持桶中的元素索引跟下一个 i+1 索引只相差不超过 kif i >= k:all_buckets.pop(nums[i-k]//bucket_size)return False

2020/08/14 - 77.66% (48ms) - 基本思想还是以空间换时间


# Python implementation
class Solution:def containsNearbyAlmostDuplicate(self, nums: List[int], k: int, t: int) -> bool:bucket = dict()if t < 0: return Falsefor i in range(len(nums)):nth = nums[i] // (t + 1)if nth in bucket:return Trueif nth - 1 in bucket and abs(nums[i] - bucket[nth - 1]) <= t:return Trueif nth + 1 in bucket and abs(nums[i] - bucket[nth + 1]) <= t:return Truebucket[nth] = nums[i]if i >= k: bucket.pop(nums[i - k] // (t + 1))return False
// C++ implementation
class Solution {
public:bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {if(t<0) return false;//t+1可能会溢出,所以要+ 1LLlong long mod = t + 1LL;unordered_map<long long,long long> buck;for(int i=0;i<nums.size();i++){long long nth = nums[i] / mod;//可能nums[i]为负数,比如-4 / 5 以及 -4 / 5都等于0,所以负数要向下移动一位if(nums[i] < 0) nth--;//这里要用find 不能直接[],因为可能本身存储的数字就为0if(buck.find(nth)!=buck.end()) return true;else if(buck.find(nth-1)!=buck.end() && abs(nums[i] - buck[nth-1]) <= t)return true;else if(buck.find(nth+1)!=buck.end() && abs(nums[i] - buck[nth+1]) <= t)return true;buck[nth] = nums[i];if(i >= k){buck.erase(nums[i - k] / mod);}}return false;}
};

参考文献

https://leetcode-cn.com/leetbook/read/introduction-to-data-structure-binary-search-tree/xpffam/

https://leetcode-cn.com/problems/contains-duplicate-iii/solution/cun-zai-zhong-fu-yuan-su-iii-by-leetcode/

https://leetcode-cn.com/problems/contains-duplicate-iii/solution/cun-zai-zhong-fu-yuan-su-iii-by-leetcode/311904

https://leetcode-cn.com/problems/contains-duplicate-iii/solution/cun-zai-zhong-fu-yuan-su-iii-by-leetcode/151367

https://leetcode-cn.com/problems/contains-duplicate-iii/solution/li-yong-tong-de-yuan-li-onpython3-by-zhou-pen-chen/

https://leetcode-cn.com/problems/contains-duplicate-iii/solution/220-cun-zai-zhong-fu-yuan-su-iii-cong-on2-dao-on-p/

【二叉搜索树】(三) 小结相关推荐

  1. 【ACM】二叉搜索树(Binary Search Tree /BS Tree) 小结

    动态管理集合的数据结构--二叉搜索树 搜索树是一种可以进行插入,搜索,删除等操作的数据结构,可以用字典或者优先队列. 二叉排序树又称为二叉查找树,他或者为空树,或者是满足如下性质的二叉树. (1)若它 ...

  2. 数据结构(三):非线性逻辑结构-特殊的二叉树结构:堆、哈夫曼树、二叉搜索树、平衡二叉搜索树、红黑树、线索二叉树

    在上一篇数据结构的博文<数据结构(三):非线性逻辑结构-二叉树>中已经对二叉树的概念.遍历等基本的概念和操作进行了介绍.本篇博文主要介绍几个特殊的二叉树,堆.哈夫曼树.二叉搜索树.平衡二叉 ...

  3. 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

    原文:http://blog.csdn.net/sup_heaven/article/details/39313731 数据结构中常见的树(BST二叉搜索树.AVL平衡二叉树.RBT红黑树.B-树.B ...

  4. pta 是否完全二叉搜索树_二叉树:构造一棵搜索树

    给「代码随想录」一个星标吧! ❝ 构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指 ...

  5. JavaScript中的二叉搜索树删除节点代码

    JavaScript中的二叉搜索树删除节点代码 提示:只有删除的节点的操作哦~ 二叉搜索树的删除节点操作: 删除二叉搜索树节点会出现的情况 1.删除的是叶子节点,即其左右均为空节点 2. 删除的是只有 ...

  6. CS61B -BST(二叉搜索树)

    CS61B - BST 什么是BST BST全名Binary search tree(二叉搜索树) BST的基本性质 BST可以是一棵空树 如果它的左树不为空,那么左树中的所有节点的值都小于根节点的值 ...

  7. java二叉搜索树详解

    文章目录 一.概念 二.相关操作 2.0节点相关代码: 2.1查找 2.2插入 2.3删除(重难点) 2.4测试用例 三.小结 提示:以下是本篇文章正文内容,下面案例可供参考 一.概念 二叉搜索树又称 ...

  8. 探究 — 二叉搜索树

    二叉搜索树(Binary Search Tree) 回顾与思考 我们来思考这么一个问题,如何在n 个动态的整数中搜索某个整数?(查看其是否存在) 看着还是很简单的,以动态数组存放元素,从第0个位置开始 ...

  9. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

最新文章

  1. 谷歌让NLP模型也能debug,只要给一张「草稿纸」就行
  2. 对《软件工程》第四章的理解
  3. CodeForces786B 线段树 + 最短路
  4. GAN的理解与TensorFlow的实现
  5. 刘慈欣推荐!这本“疯狂的书”预言9年后人类将永生?
  6. 如何利用URLOS和云存储打造一个不惧怕宕机的网站环境
  7. VBA实战代码大全-下载
  8. 自然辩证法(研究生)期末考试题库
  9. ESL3.6 几种线性回归方法比较学习笔记(含协方差相关系数概念)
  10. 【Python • 图片识别】pytesseract快速识别提取图片中的文字
  11. 拉普拉斯变换 性质 及常用函数变换
  12. 七大江河水系--黄河(一)
  13. linux进程间信号量
  14. iOS上架App Store详解(图文)
  15. 为什么GEMM是深度学习的核心
  16. 线程同步,为什么要引入线程同步?
  17. 搭建CTPN网络(基于windows与tensorflow)
  18. Q3c「最大可以支持多大容量的硬盘?」AirDisk
  19. 有感“IBM将大规模裁员11万人左右,幅度高达26%”
  20. API身份验证和授权介绍

热门文章

  1. Hibernate 主键使用注解 @SequenceGenerator
  2. buctoj周赛(5)逃离(三分+思维)
  3. 区块链:重塑经济与世界
  4. 欧美相关出口企业要注意了!
  5. 用了 VS Code、IDEA 等十几款编辑器后,我总结出优秀编辑器的特质
  6. layui使用模板渲染数据
  7. 如何写好一份前端简历
  8. 阿里云天池供应链大赛(一)
  9. 华展云1.1.0版本更新通告
  10. 创建手工凭证实现分录中原币=0本位币<>0的效果-FBB1