#P51419. 「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 跳到荷叶 j(j>i)j(j>i) 当且仅当 (i,j)(i,j) 被标记成这只青蛙且 xixjx_i|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
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

对应标记情况

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

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

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

2
10 101
1

数据范围与提示

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

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

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

f(x)=110×{11k4k58k26k11112k190k20\begin{equation} f(x)=\frac {1}{10}\times \left\{ \begin{aligned}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{aligned} \right. \end{equation}

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