Bài 2: Dãy không giảm (TS10 Thanh Hóa thi thử - 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy số nguyên \(a_1, a_2, \dots, a_n\). Với mỗi số \(a_i\), Bờm được phép thực hiện một trong ba thao tác sau:

  • Cộng thêm \(1\): \(a_i = a_i + 1\);
  • Trừ đi \(1\): \(a_i = a_i - 1\);
  • Giữ nguyên: \(a_i = a_i\).

Với dãy số nguyên \(a_1, a_2, \dots, a_n\) đã cho, sau khi thực hiện đúng một thao tác trên mỗi số \(a_i\) (\(i = 1 \dots n\)), liệu Bờm có thể tạo ra được một dãy không giảm hay không?

Input

  • Dòng đầu chứa số nguyên dương \(T\) là số bộ test (\(T \le 3\)).
  • Trong mỗi bộ test:
    • Dòng thứ nhất chứa duy nhất một số nguyên dương \(n\) (\(2 \le n \le 10^5\)).
    • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(|a_i| \le 10^9\)).

Output

  • Ghi ra \(T\) dòng là đáp án tương ứng của \(T\) bộ test. In YES nếu Bờm có thể tạo ra một dãy không giảm, ngược lại in NO.

Example

Test 1

Input
2
5
1 2 1 1 2
4
1 4 2 1
Output
YES
NO

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(T = 1\)\(a_2 = a_3 = \dots = a_n\).
  • Subtask \(2\) (\(30\%\) số điểm): \(T = 2\)\(n \le 20\).
  • Subtask \(3\) (\(20\%\) số điểm): \(T = 3\) và không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.