#HT1072. 子树大小

子树大小

题目描述

输入 1n1\sim n 的一个排列,输出按照下面的序列建树规则建树后的每个子树大小。

序列建树规则:

  • 以当前序列中编号最小的点 xx 作为根节点建立一棵二叉树
  • xx 左边的序列按照这个规则建树并作为 xx 的左子树,如果 xx 左边没有数,则左子树为空
  • xx 右边的序列按照这个规则建树并作为 xx 的右子树,如果 xx 右边没有数,则右子树为空

输入格式

输入第一行为一个整数 nn

接下来一行,为空格隔开的 nn 个正整数,即 1n1\sim n 的一个排列。

输出格式

输出一行为空格隔开的 nn 个整数,即建树后 1n1\sim n 对应的子树大小。

样例

5
3 1 5 2 4 
5 3 1 1 1 
5
3 4 5 2 1
5 4 3 2 1

样例 1 说明

按规则建树后的树如下:

     1
    / \
   3   2
      / \
     5   4     

数据范围

对于 60%60\% 的数据:1n101\le n \le 10

对于 100%100\% 的数据:1n10001\le n \le 1000