Hai dãy bị xáo trộn
Đề bài
Mô tả
Ban đầu có hai dãy số nguyên: một dãy tăng nghiêm ngặt và một dãy giảm nghiêm ngặt . Dãy rỗng hoặc dãy gồm một phần tử đều được coi là vừa tăng vừa giảm nghiêm ngặt.
Hai dãy được trộn vào nhau thành dãy độ dài , sau đó bị xáo trộn (hoán vị tùy ý).
Cho dãy sau khi xáo trộn, hãy khôi phục bất kỳ cặp dãy tăng nghiêm ngặt và giảm nghiêm ngặt nào có thể trộn lại thành đúng đa-tập . Nếu không tồn tại cặp như vậy, in ra "NO".
Dữ liệu vào
- Dòng đầu chứa số nguyên — độ dài của .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Nếu không thể tách dãy thành hai dãy (tăng và giảm nghiêm ngặt), in ra một dòng "NO".
Ngược lại, in ra "YES" ở dòng đầu, rồi:
- Dòng 2: — số phần tử của dãy tăng nghiêm ngặt ( có thể bằng ).
- Dòng 3: số của dãy tăng theo đúng thứ tự tăng. Nếu thì in dòng trống.
- Dòng 4: — số phần tử của dãy giảm nghiêm ngặt ( có thể bằng ).
- Dòng 5: số của dãy giảm theo đúng thứ tự giảm. Nếu thì in dòng trống.
Phải có và hợp của hai dãy in ra (theo đa-tập) phải đúng bằng .
Nếu có nhiều đáp án, in ra một đáp án bất kỳ thỏa mãn.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 7 2 7 3 3 1 4 |
YES 5 1 2 3 4 7 2 7 3 |
Dãy tăng và dãy giảm trộn lại đúng bằng đa-tập . |
| 5 0 1 2 3 4 |
YES 5 0 1 2 3 4 0 |
Tất cả phần tử đôi một khác nhau nên có thể xếp toàn bộ vào dãy tăng; dãy giảm rỗng (dòng cuối là dòng trống). |
| 5 1 1 2 1 2 |
NO | Giá trị xuất hiện lần. Trong hai dãy đơn điệu nghiêm ngặt, mỗi giá trị xuất hiện nhiều nhất lần (một lần trong dãy tăng, một lần trong dãy giảm) nên không thể tách được. |
Bình luận