Tests for Haybales
题目描述
Farmer John 的奶牛决定为 Farmer Nhoj 的农场奶牛举办一场编程竞赛。为了让题目尽可能有趣,她们花了很多时间设计刁钻的输入数据。对于其中一道题目“Haybales”,奶牛需要你帮助构造具有挑战性的输入。
这需要解决下面这个有点耐人寻味的问题:
给定一个已排序的整数数组 x1≤x2≤⋯≤xN(1≤N≤105),以及一个整数 K。你并不知道数组的具体数值或 K 的值,但你知道对每个下标 i,最大的下标 ji 满足 xji≤xi+K。保证 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 的最大元素。类似地,
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。
SCORING:
对于 50% 的输入,N≤5000
对于剩余输入,没有额外限制。
题目贡献者:Danny Mittal
标签: USACO|2022|Gold
来源
USACO|2022|Gold