[Buổi 5][Củng cố vòng lặp][ADV] Bài 2: Thay đổi đẹp mắt


LÀM BÀI

Points: 20
Time limit: 1.0s
Memory limit: 20M

Author:
Problem types
Allowed languages
C++

Thay đổi đẹp mắt

Bối cảnh

Có \(N\) ô vuông được sắp xếp theo hàng ngang từ trái sang phải. Chiều cao của ô vuông thứ \(i\) tính từ trái sang phải là \(H_i\).

Yêu cầu

Đối với mỗi ô vuông, bạn sẽ thực hiện một trong các thao tác sau một lần:

  • Giảm chiều cao của ô vuông đi \(1\).
  • Không làm gì cả.

Xác định xem có thể thực hiện các thao tác sao cho chiều cao của các ô vuông không giảm dần từ trái sang phải hay không.

Input

N
H_1 H_2 ... H_N

Output

Nếu có thể thực hiện các thao tác sao cho chiều cao của các ô vuông không giảm dần từ trái sang phải, in ra "Yes"; ngược lại, in ra "No".

Ràng buộc

  • Tất cả giá trị đầu vào là số nguyên.
  • \(1 \leq N \leq 10^5\)
  • \(1 \leq H_i \leq 10^9\)
Ví dụ 1

Input

5
1 2 1 1 3

Output

Yes

Giải thích ví dụ

Bạn có thể đạt được mục tiêu bằng cách giảm chiều cao của ô vuông thứ hai từ trái sang phải đi \(1\).

Ví dụ 2

Input

4
1 3 2 1

Output

No

Giải thích ví dụ

  • Ví dụ 1:

    • Có thể giảm chiều cao của ô vuông thứ hai từ trái sang phải đi 1 đơn vị, để chiều cao không giảm dần từ trái sang phải.
  • Ví dụ 2:

    • Không thể giảm chiều cao của các ô vuông để đảm bảo chiều cao không giảm dần từ trái sang phải.

Thông tin học tập

  • Buổi: B05
  • Concepts: loops, state-based greedy algorithms
  • Giới hạn kiến thức: B01-B05
  • Time limit: 1 second
  • Memory limit: 20 MB
  • Point: 20

Comments

There are no comments at the moment.

Zalo