Tách trộn (Unmerge)
Đề bài
Mô tả
Cho hai mảng và có độ dài lần lượt là và , không có phần tử chung. Ta định nghĩa mảng độ dài một cách đệ quy như sau:
- Nếu một trong hai mảng rỗng, kết quả là mảng còn lại.
- Nếu cả hai mảng khác rỗng và , thì — tức là lấy phần tử đầu ra, trộn phần còn lại, rồi đặt lên đầu kết quả.
- Nếu cả hai mảng khác rỗng và , thì .
Đây chính là bước trộn trong thuật toán sắp xếp trộn (merge sort), nhưng ở đây ta áp dụng nó cho cả những mảng không được sắp xếp. Ví dụ, nếu và thì .
Một hoán vị là một mảng gồm các số nguyên phân biệt từ đến độ dài của mảng.
Cho một hoán vị độ dài . Hãy xác định xem có tồn tại hai mảng và , mỗi mảng độ dài và không có phần tử chung, sao cho hay không.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số lượng bộ dữ liệu. Tiếp theo là dòng mô tả các bộ.
- Dòng đầu của mỗi bộ chứa số nguyên .
- Dòng thứ hai của mỗi bộ chứa số nguyên — một hoán vị của .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra "YES" nếu tồn tại hai mảng thỏa mãn, ngược lại in ra "NO".
Ràng buộc
- , là một hoán vị của .
- Tổng trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 2 2 3 1 4 2 3 1 2 4 4 3 2 6 1 5 7 8 4 3 1 2 3 4 5 6 4 6 1 3 7 4 5 8 2 6 4 3 2 5 1 11 9 12 8 6 10 7 |
YES NO YES YES NO NO |
Bộ 1: . Bộ 3: . Bộ 4: . |
| 1 9 2 1 4 3 7 6 5 10 9 8 13 12 11 18 17 16 15 14 |
YES | Có thể tách được thành hai mảng độ dài . |
Bình luận