Kiểm tra BST cân bằng

Xem dưới dạng PDF

Gửi bài giải


Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Tèo được cho một BST với \(N\) nút. Một cây được gọi là cân bằng chiều cao nếu với mọi nút, chênh lệch chiều cao giữa cây con trái và cây con phải không vượt quá \(1\).

Chiều cao của cây con rỗng được coi là \(-1\).

Hãy giúp Tèo viết chương trình kiểm tra BST có cân bằng chiều cao hay không.

Định dạng đầu vào

  • Dòng đầu chứa số nguyên dương \(N\) (\(1 \le N \le 10^3\)).
  • Dòng thứ hai chứa \(N\) số nguyên dương phân biệt \(a_1, a_2, \dots, a_N\) (\(1 \le a_i \le 10^9\)), là thứ tự các giá trị được chèn vào BST ban đầu.

Định dạng đầu ra

  • In ra \(YES\) nếu BST cân bằng chiều cao, ngược lại in ra \(NO\).

Ví dụ

Input:

7
5 3 7 2 4 6 8

Output:

YES

Giải thích: Cây BST tạo từ dãy trên có chiều cao cân bằng: mọi nút đều có chênh lệch chiều cao giữa hai cây con không quá \(1\).

Input:

5
1 2 3 4 5

Output:

NO

Giải thích: Dãy tăng dần tạo thành cây BST lệch phải, không cân bằng.


Nhận xét

Không có ý kiến tại thời điểm này.