Dãy Tăng Nghiêm Ngặt

Xem PDF



Tác giả:
Dạng bài
Điểm: 500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn được cho một dãy \(a\) gồm \(n\) số nguyên dương. Hỏi có cách nào sắp xếp dãy \(a\) thành dãy tăng nghiêm ngặt không?

Dãy tăng nghiêm ngặt có \(n\) phần tử là dãy có các phần tử thỏa mãn điều kiện: \(a_{1} < a_{2} < ... < a_{n}\).

Input

  • Dòng thứ nhất chứa một số nguyên dương \(T\) (\(T \le 10\)) - số bộ test mà bạn phải trả lời.
  • \(T\) bộ test tiếp theo có dạng như sau:
    • Dòng thứ nhất của bộ test chứa một số nguyên dương \(n\) (\(n \le 10^5\)).
    • Dòng thứ hai của bộ test chứa \(n\) số nguyên dương \(a_{1}, a_{2},..., a_{n}\) (\(a_{i} \le 10^6\)).

Output

  • Với mỗi bộ test, in ra YES nếu bạn có thể sắp xếp dãy số thỏa mãn yêu cầu đề bài, ngược lại in ra NO.

Example

Test 1

Input
2
4 
1 1 1 1
5
8 7 1 3 4
Output
NO
YES

Bình luận


  • 3
    hoanganh2309hanoi    11:29 a.m. 26 Tháng 2, 2023
    Hint

    Ta có nhận xét rằng: Nếu trong mảng không có hai phần tử trùng nhau thì sẽ luôn có cách để sắp xếp chúng theo thứ tự tăng (\(a_1 < a_2 < ... < a_n\))
    Vậy ta chỉ cần kiểm tra nếu mảng đã cho có phần tử trùng nhau thì in ra "NO" và ngược lại thì in ra "YES"

    Preference AC Code (Python)
    Python
    t = int(input())
    for _ in range(t):
        n = int(input())
        a = [int(x) for x in input().split()]
        if len(set(a)) != len(a):
            print("NO")
        else:
            print("YES")
    

    • 2
      PY2DTranNguyenKhang    11:39 a.m. 9 Tháng 7, 2023

      Cảm ơn đã cho mình gợi ý, mình mới học nên cứ dùng count nãy giờ mà không ra.

      4 bình luận nữa