1416: 埃拉拉的神器排列

内存限制:128 MB 时间限制:1.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:32 通过:17 通过率:53.125%

题目描述

埃拉拉是一位技艺精湛的古代魔法研究者。最近,她在一次探险中发现了一组共 n 件的古老神器。这些神器按发现顺序列成一排,编号从 1 到 n。每件神器 i 都蕴含着一个初始的、非负的能量值 ai

埃拉拉想将这些神器按照发现的顺序(即神器 1 在位置 1,神器 2 在位置 2,...,神器 n 在位置 n)陈列在一个特制的魔法展示架上。为了维持展示架的能量稳定和谐振,陈列的神器能量值必须 严格递增,即位置 1 的神器最终能量 < 位置 2 的神器最终能量 < ... < 位置 n 的神器最终能量。

幸运的是,埃拉拉掌握了一种抑制魔法。对于任何一件神器 i,她可以选择性地施展抑制魔法,将其展示的能量值降低到一个 非负整数 x,只要这个新的能量值 x 严格小于 神器原来的能量值 ai(即 0<= x <= ai)。她可以对一件神器施展多次抑制(只要每次都满足条件),也可以选择不对某些神器施展。每件神器的抑制是独立的。现在的问题是:埃拉拉能否通过对部分或全部神器施展抑制魔法(可能不施展),使得最终陈列在展示架上的 n 件神器能量值 a1′,a2′,…,an′ 满足严格递增的条件 a1′<a2′<⋯<an′?

给定一个包含 n 个非负整数的序列  a=[a1,a2,…,an],代表 n 件神器的初始能量值。
你可以对序列执行任意次以下操作:

  • 选择一个下标  i ( 1 <= i <= n)

  • 选择一个整数 x 使得  0 <= x <= ai

  • 将 ai 的值替换为 x

判断是否可能通过若干次(可能为零次)操作,使得序列 a 变为 严格递增 序列。

输入格式

输入包含两行。
第一行包含一个整数 n(1 <= n <= 105 ) —— 神器的数量(序列的长度)。
第二行包含  个整数 a1,a2,…,an(0 ≤ ai ≤109) —— 每件神器的初始能量值。

输出格式

如果可能将序列变换为严格递增序列,则输出一行 "Yes" (不带引号)。
否则,输出一行 "No" (不带引号)。

输入样例 复制

4
5 3 4 5

输出样例 复制

Yes

数据范围与提示

初始能量为 [5, 3, 4, 5]

  • 神器 4 的能量 a4=5。可以保持不变。最终 a4′=5

  • 神器 3 的能量 a3=4。因为 4<5,可以保持不变。最终 a3′=4

  • 神器 2 的能量 a2=3。因为 3<4,可以保持不变。最终 a2′=3

  • 神器 1 的能量 a1=5。为了满足 a1′<a2′ (即 a1′<3),需要抑制 a1。可以选择抑制后的能量 x=2。因为 0≤2<5,这是允许的操作。最终 a1′=2

最终的能量序列可以是 [2, 3, 4, 5],它是严格递增的。所以输出 "Yes"。