Chiếc hộp bí mật
Đề bài
Mô tả
Một hoán vị là dãy gồm số nguyên dương phân biệt, mỗi số nằm trong đoạn từ đến . Ví dụ , , là các hoán vị, còn , , thì không.
Bạn cần mở một chiếc hộp bị khoá bằng một mã bí mật, chính là một hoán vị có độ dài . Bạn không biết hoán vị này, chỉ biết dãy gồm các giá trị lớn nhất của các tiền tố của :
Hãy dựng một hoán vị bất kỳ sao cho dãy giá trị lớn nhất tiền tố của nó đúng bằng dãy đã cho, hoặc cho biết không tồn tại hoán vị nào như vậy.
Dữ liệu vào
- Dòng đầu chứa số nguyên , số lượng test.
- Với mỗi test:
- Dòng đầu chứa số nguyên , độ dài hoán vị.
- Dòng thứ hai chứa số nguyên . Bảo đảm với mọi .
Dữ liệu ra
Với mỗi test, in ra:
- nếu không tồn tại hoán vị phù hợp.
- Ngược lại, in ra số nguyên phân biệt (). Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.
Ràng buộc
- và
- Tổng tất cả các giá trị trên mọi test không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 5 1 3 4 5 5 4 1 1 3 4 2 2 2 1 1 |
1 3 4 5 2 -1 2 1 1 |
Test 1: với ta có các tiền tố lớn nhất là đúng bằng . Test 2: buộc , nhưng đòi hỏi (không tồn tại) nên vô nghiệm. Test 3: cho tiền tố lớn nhất . Test 4: chỉ có . |
| 3 3 1 1 1 2 1 1 4 3 3 3 3 |
-1 -1 -1 |
Cả ba test đều vô nghiệm: sau khi đặt giá trị lớn nhất đầu tiên, không còn đủ các số nhỏ hơn để lấp vào những vị trí mà giá trị lớn nhất tiền tố không tăng. |
Bình luận