#U2122JG3. Tests for Haybales

Tests for Haybales

Farmer John 的奶牛们决定为 Farmer Nhoj 农场的奶牛们举办一场编程竞赛。为了使问题尽可能有趣,他们花费了大量时间来构造具有挑战性的测试用例。特别是对于一个问题,「Haybales」,奶牛们需要你的帮助来设计具有挑战性的测试用例。这有关解决以下这个有些奇妙的问题:

有一个有序整数数组 x1x2xNx_1 \leq x_2 \leq \dotsb \leq x_N1N1051 \leq N \leq 10^5),和一个整数 KK。你不知道这个数组以及 KK,但你知道对于每个索引 ii 使得 xjixi+Kx_{j_i} \leq x_i + K 的最大索引 jij_i。保证有 ijii\le j_i 以及 j1j2jNNj_1\le j_2\le \cdots \le j_N\le N

给定这些信息,Farmer John 的奶牛需要构造任意一个数组以及整数 KK 与该信息一致。构造需要满足对于所有 ii0xi10180 \leq x_i \leq 10^{18},并且 1K10181 \leq K \leq 10^{18}

可以证明这一定是可行的。请帮助 Farmer John 的奶牛们解决这一问题!

输入格式(从终端 / 标准输入读入):

输入的第一行包含 NN。第二行包含 j1,j2,,jNj_1,j_2,\ldots,j_N

输出格式(输出至终端 / 标准输出):

输出 KK,然后在下一行输出 x1,,xNx_1,\ldots,x_N。任何合法的输出均正确。

输入样例:

6
2 2 4 5 6 6

输出样例:

6
1
6
17
22
27
32

输出样例为数组 a=[1,6,17,22,27,32]a=[1,6,17,22,27,32] 以及 K=6K=6j1=2j_1=2 被满足是由于 a2=61+6=a1+Ka_2=6 \le 1+6=a_1+Ka3=17>1+6=a1+Ka_3=17>1+6=a_1+K,从而 a2a_2 是最大的不超过 a1+Ka_1+K 的元素。类似地:

  • j2=2j_2=2 被满足是由于 a2=66+6a_2=6 \le 6+6a3=17>6+6a_3=17>6+6
  • j3=4j_3=4 被满足是由于 a4=2217+6a_4=22 \le 17+6a5=27>17+6a_5=27>17+6
  • j4=5j_4=5 被满足是由于 a5=2722+6a_5=27 \le 22+6a5=32>22+6a_5=32>22+6
  • j5=6j_5=6 被满足是由于 a6=3227+6a_6=32 \le 27+6a6a_6 是数组的最后一个元素;
  • j6=6j_6=6 被满足是由于 a6=3232+6a_6=32 \le 32+6a6a_6 是数组的最后一个元素。

对于输入样例,这并不是唯一正确的输出。例如,你也可以输出数组 [1,2,4,5,6,7][1,2,4,5,6,7]K=1K=1

测试点性质:

  • 所有测试点的 50%50\% 满足 N5000N \le 5000
  • 其余测试点没有额外限制。