Contest Duration: - (local time) (100 minutes) Back to Home
C - Build Stairs /

Time Limit: 2 sec / Memory Limit: 1024 MB

問題文

あなたは各マスについて 1 度ずつ次のいずれかの操作を行います。

• マスの高さを 1 低くする。
• 何もしない。

制約

• 入力は全て整数である。
• 1 \leq N \leq 10^5
• 1 \leq H_i \leq 10^9

入力

N
H_1 H_2 ... H_N


出力

マスの高さを左から右に向かって単調非減少にできるなら Yes、そうでないなら No を出力せよ。

入力例 1

5
1 2 1 1 3


出力例 1

Yes


入力例 2

4
1 3 2 1


出力例 2

No


入力例 3

5
1 2 3 4 5


出力例 3

Yes


入力例 4

1
1000000000


出力例 4

Yes


Score : 300 points

Problem Statement

There are N squares arranged in a row from left to right. The height of the i-th square from the left is H_i.

For each square, you will perform either of the following operations once:

• Decrease the height of the square by 1.
• Do nothing.

Determine if it is possible to perform the operations so that the heights of the squares are non-decreasing from left to right.

Constraints

• All values in input are integers.
• 1 \leq N \leq 10^5
• 1 \leq H_i \leq 10^9

Input

Input is given from Standard Input in the following format:

N
H_1 H_2 ... H_N


Output

If it is possible to perform the operations so that the heights of the squares are non-decreasing from left to right, print Yes; otherwise, print No.

Sample Input 1

5
1 2 1 1 3


Sample Output 1

Yes


You can achieve the objective by decreasing the height of only the second square from the left by 1.

Sample Input 2

4
1 3 2 1


Sample Output 2

No


Sample Input 3

5
1 2 3 4 5


Sample Output 3

Yes


Sample Input 4

1
1000000000


Sample Output 4

Yes