#L3456. 「COCI 2021.1」Hop

「COCI 2021.1」Hop

题目描述

译自 COCI 2020/2021 Contest #4 T3「Hop」

nn 片荷叶,每片荷叶有一个数字 xix_i

有三只青蛙,在一开始,每只青蛙都可能会在任意一片荷叶上。

每两片荷叶 (a,b)(a,b) 都必须标记为青蛙 11、青蛙 22 和青蛙 33

一只青蛙可以从荷叶 ii 跳到荷叶 jj (j>ij>i) 当且仅当 (i,j)(i,j) 被标记成这只青蛙且 xixjx_i \mid x_j

您需要为任意两片荷叶进行标记,使得没有出现任意一只青蛙超过三次连跳的情况。

输入格式

第一行一个数字 nn

接下来一行 nn 个整数 xix_i

输出格式

输出 n1n-1 行,在第 ii 行输出 ii 个整数,第 ii 行第 jj 个整数表示 (j,i+1)(j,i+1) 的标记情况。

样例 1

输入 8 3 4 6 9 12 18 36 72

text

输出 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1

text

对应标记情况:

三只青蛙被标记成了蓝色,绿色和红色。

被标记成蓝色的青蛙可以跳出这样的路径:14781 \to 4 \to 7 \to 8,共三步。

没有青蛙可以连续跳超过三步。

样例 2

输入 2 10 101

text

输出 1

text

数据范围与提示

对于所有子任务,保证 1n1031 \le n \le 10^31xi10181 \le x_i \le 10^{18}xix_i 严格递增。

子任务编号 约束 分值
1 n30n \le 30 10/11010/110
2 无附加限制 100/110100/110

如果您的答案会使得一些青蛙连跳 kk (k>3k>3) 次,并且没有青蛙可以连跳 k+1k+1 次,则您会获得 f(k)×xf(k) \times x 的分数,其中 xx 为测试点所属的子任务分值,f(k)f(k) 的定义如下:

$$f(k)=\frac {1}{10}\times \begin{cases} 11-k & 4\le k\le 5 \\ 8-\left\lfloor\frac k2\right\rfloor & 6\le k\le 11\\ 1 & 12\le k\le 19\\ 0 & k\ge 20 \end{cases} $$

每个子任务取各个测试点得分的最小值。