luogu#P10073. [GDKOI2024 普及组] 刷野 II

[GDKOI2024 普及组] 刷野 II

题目描述

Zayin 是一个与怪物战斗的巫师,这次他将面临 nn 个站成一排的怪物,其中第 ii 个怪物的生命值是 aia_i

Zayin 知道许多被压制的咒语,在这场战斗中,他决定使用一个名为” 闪电连击” 的咒语来一口气击败所有的怪物。让我们看看这个咒语是如何工作的。

  • 首先,Zayin 选择一个怪物 i(1in)i(1 \leq i \leq n) 以及咒语的初始力量 xx
  • 然后这个咒语会首先击中怪物 ii,随后对于除第一个目标怪物外,Zayin 可以选择一个没有被该咒语击中过,并且与其中一个已经被击中的怪物相邻的怪物。
  • 第一个被击中的目标怪物会受到 xx 的伤害,第二个目标怪物会受到 x1x-1 的伤害,第三个受到 x2x-2 的伤害,以此类推。不难看出,每个怪物都会被击中恰好一次。

如果一个怪物受到的伤害不低于其生命值,则视为死亡。

Zayin 想展示他作为一个高级巫师的能力,所以他希望在只使用一次咒语就能杀死所有怪物的前提下,使用最少的初始力量 xx

现在你需要求出所需的最少的初始力量,并给出一个方案。如果有多个不同的方案,只需要给出任意一个就可以了。

输入格式

第一行包含两个整数 d,nd, n,表示测试点编号和怪物数。

接下来一行 nn 个整数,第 ii 个整数 aia_i 表示第 ii 个怪物的血量。

输出格式

第一行输出一个整数 xx,表示最少的初始力量。

接下来第二行输出 nn 个用空格分割的下标 monsteri(1in)monster_i(1 \leq i \leq n),其中 monsterimonster_i 表示第 ii 个击中的目标怪物。

1 10
19 9 12 5 10 7 16 15 17 12
25
1 2 3 4 5 6 7 8 9 10

提示

对于所有测试数据,保证 1n5×1061 \leq n \leq 5 \times 10^61ai1091 \leq a_i \leq 10^9

测试点编号 nn\leq
11 1010
22 2020
33 500500
44 50005000
55 5×1045\times 10^4
6,76,7 5×1055\times 10^5
8,9,108,9,10 5×1065\times 10^6