Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:512 MB
统计
【题目描述】

有一种树哈希的方式,是将每个点的子树大小 siz 按照一个特定的 dfs 遍历顺 序排列,再用类似字符串哈希的方式求出哈希值

为了验证这种哈希方式的正确性,对于任意一个合法 siz 序列,你需要将其唯 一对应成一棵树

给出 siz 序列,如果存在一棵与其对应的树,你需要求出这棵树上每个节点的

父亲,否则输出 No Solution!

你需要在单组测试点中处理 T 组数据的询问。

【输入格式】

从文件 hash.in 中读入数据。

第一行,一个正整数 T,表示数据组数,对于每组数据:

第一行,一个正整数 n,表示节点个数。

第二行 n 个正整数,sizi 表示 dfs 序中第 i 个点的子树大小。

【输出格式】

输出到文件 hash.out 中。

输出一行 n − 1 个数,第 i 个数表示 dfs 序中第 i + 1 个节点的父亲

【样例输入1】
2
8
8 3 2 1 4 1 1 1
6
6 5 4 3 2 2
【样例输出1】
1 2 3 1 5 5 5
No Solution!
【样例解释】

对于第一个数据点,如图,按照 $1, 2, \dots , 8$ 的顺序遍历,可以得到给出的 siz 序列

【数据范围】

对于 $20 \%$ 的数据,$n \leq 10$

对于所有数据,$T \leq 10,n \leq 10^5,siz_i \leq n$。