「EZEC-9」GCD Tree
题目背景
规定 $\gcd(x,y)$ 表示 $x,y$ 的最大公约数,$\operatorname{lca}(x,y)$ 表示 $x$ 号节点和 $y$ 号节点的最近公共祖先。
题目描述
给你 $n$ 个点,编号分别为 $1,2,\ldots,n$,点权分别为 $a_1,a_2,\ldots,a_n$。
请你用这 $n$ 个点构造一棵树,使得 $\forall 1 \le i < j \le n$,$\gcd(a_i, a_j) = a_{\operatorname{lca}(i, j)}$。
若无解,报告之,否则输出树的形态。
输入输出格式
输入格式
第一行一个整数 $n$。
第二行 $n$ 个整数 $a_1, a_2, \ldots , a_n$。
输出格式
若无解,输出 `-1`;
否则输出一行 $n$ 个整数,第 $i$ 个数表示 $i$ 号节点的父节点编号。特别地,若 $i$ 号节点为根节点则输出 `0`。
若有多解,输出任意一解即可。
输入输出样例
输入样例 #1
5
1 2 3 4 5
输出样例 #1
0 1 1 2 1
输入样例 #2
5
1 2 3 4 6
输出样例 #2
-1
说明
**【数据规模与约定】**
**本题采用捆绑测试。**
- Subtask 1(5 points):$n = 2$。
- Subtask 2(5 points):所有 $a_i$ 均相等。
- Subtask 3(5 points):$n \le 5$。
- Subtask 4(10 points):保证有解。
- Subtask 5(15 points):$n \le 100$。
- Subtask 6(15 points):$n \le 10^3$。
- Subtask 7(15 points):$n \le 3 \times 10^3$。
- Subtask 8(30 points):无特殊限制。
对于 $100 \%$ 的数据,$2 \le n \le 10^5$,$1 \le a_i \le 10^6$。