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

Xem PDF

Đ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


  • 0
    dangluu2013    12:09 p.m. 1 Tháng 4, 2024 chỉnh sửa 8

    test nhiều nhỉ


    • -1
      thuan30122005    12:52 p.m. 3 Tháng 1, 2024

      cái test với đề bài chả liên quan nhau


      • 2
        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")
        
        1 phản hồi