在一座失落的古老神殿中,你发现了一排被镌刻在祭坛上的远古符文。 这些符文蕴含着强大的力量,但历经千年,它们的光芒已经黯淡。 幸运的是,神殿的记录揭示了重新激活它们的方法:使用能量水晶。 神殿的祭坛可以看作是一排长度为 的序列,有些位置上刻有远古符文,而另一些位置则是空的。我们用一个布尔数组 来表示这个序列,其中: 代表第 个位置上有一个远古符文。 代表第 个位置是空的。 你可以在任何空的位置()上放置一颗能量水晶。根据神殿的古籍记载,一个远古符文能够被成功激活(即重新焕发光芒),当且仅当其左侧或右侧的相邻位置上放置了一颗能量水晶。 你的任务是找出一种放置能量水晶的方案,使得所有的远古符文都被激活,并且使用的能量水晶数量最少。如果无论如何都无法激活所有的符文,则视为任务失败。 请计算出激活所有符文所需的最少能量水晶数量。如果任务失败,请返回-1。 注意:题目保证输入的序列中至少存在一个远古符文。
输入描述:
输入包含两行:第一行是一个正整数 ,代表祭坛序列的长度。满足 。第二行是 个整数(0或1),用空格隔开,表示祭坛序列 。
输出描述:
输出一个整数,表示所需的最少能量水晶数量。如果无法激活所有符文,则输出-1。
示例1
说明
祭坛上只有一个位置,且该位置是一个符文。没有任何空位可以放置能量水晶,因此这个符文无法被激活。
示例2
说明
祭坛序列为 `0 1 0 1 0`。可以在中间的空位(下标3)放置一颗能量水晶。
- 对于下标为2的符文,其右侧(下标3)现在有水晶,被激活。
- 对于下标为4的符文,其左侧(下标3)现在有水晶,被激活。
因此,只需要1颗水晶就能激活所有符文。
示例3
说明
祭坛序列为 `1 0 0 1`。
- 为了激活下标为1的符文,必须在下标为2的空位放置水晶。
- 为了激活下标为4的符文,必须在下标为3的空位放置水晶。
因此,需要在下标2和3的位置各放置一颗水晶,总共需要2颗。
备注:
本题由牛友@Charles 整理上传
加载中...