Khai triển Prairie
Đề bài
Mô tả
Mọi số nguyên dương có thể được biểu diễn duy nhất dưới dạng
trong đó và là các số nguyên thỏa mãn và . (Khi thì tổng lũy thừa là rỗng và .) Ta gọi đây là khai triển prairie của .
Ví dụ, khai triển prairie của và lần lượt là:
Alice có một dãy số nguyên dương (có thể có phần tử trùng nhau). Cô thay mỗi phần tử của dãy bằng dãy các số hạng trong khai triển prairie của nó, gộp tất cả các số thu được lại, sắp xếp chúng theo thứ tự không giảm rồi đưa cho Borys.
Borys muốn biết dãy gốc của Alice có thể có bao nhiêu phần tử. Hãy tìm tất cả các khả năng.
Dữ liệu vào
- Dòng đầu chứa một số nguyên , số lượng số Borys nhận được.
- Dòng thứ hai chứa số nguyên đã được sắp xếp không giảm ().
Dữ liệu ra
In ra theo thứ tự tăng dần tất cả các giá trị sao cho tồn tại một dãy số nguyên dương độ dài mà: nếu thay mỗi phần tử bằng các số hạng trong khai triển prairie của nó rồi sắp xếp không giảm thì thu được đúng dãy đã cho.
Nếu không tồn tại giá trị nào như vậy, in ra một số .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 1 2 4 4 4 |
-1 | Không có dãy gốc nào tạo ra dãy này. |
| 6 1 1 1 2 2 2 |
2 3 | Dãy gốc có thể là (độ dài ) hoặc (độ dài ). |
| 8 1 1 2 2 3 4 5 8 |
2 | Dãy gốc có thể là : và . |
Bình luận