Farmer John 的奶牛们决定为 Farmer Nhoj 农场的奶牛们举办一场编程竞赛。为了使问题尽可能有趣,他们花费了大量时间来构造具有挑战性的测试用例。特别是对于一个问题,「Haybales」,奶牛们需要你的帮助来设计具有挑战性的测试用例。这有关解决以下这个有些奇妙的问题:
有一个有序整数数组 x1≤x2≤⋯≤xN
(1≤N≤105
),和一个整数 K
。你不知道这个数组以及 K
,但你知道对于每个索引 i
使得 xji≤xi+K
的最大索引 ji
。保证有 i≤ji
以及 j1≤j2≤⋯≤jN≤N
。
给定这些信息,Farmer John 的奶牛需要构造任意一个数组以及整数 K
与该信息一致。构造需要满足对于所有 i
有 0≤xi≤1018
,并且 1≤K≤1018
。
可以证明这一定是可行的。请帮助 Farmer John 的奶牛们解决这一问题!
输入格式(从终端 / 标准输入读入):
输入的第一行包含 N
。第二行包含 j1,j2,…,jN
。
输出格式(输出至终端 / 标准输出):
输出 K
,然后在下一行输出 x1,…,xN
。任何合法的输出均正确。
输入样例:
6
2 2 4 5 6 6
输出样例:
6
1
6
17
22
27
32
输出样例为数组 a=[1,6,17,22,27,32]
以及 K=6
。 j1=2
被满足是由于 a2=6≤1+6=a1+K
而 a3=17>1+6=a1+K
,从而 a2
是最大的不超过 a1+K
的元素。类似地,
j2=2
被满足是由于 a2=6≤6+6
而 a3=17>6+6
j3=4
被满足是由于 a4=22≤17+6
而 a5=27>17+6
j4=5
被满足是由于 a5=27≤22+6
而 a5=32>22+6
j5=6
被满足是由于 a6=32≤27+6
且 a6
是数组的最后一个元素
j6=6
被满足是由于 a6=32≤32+6
且 a6
是数组的最后一个元素
对于输入样例,这并不是唯一正确的输出。例如,你也可以输出数组 [1,2,4,5,6,7]
和 K=1
。
测试点性质:
所有测试点的 50% 满足 N≤5000
。
其余测试点没有额外限制。