Bật đèn
Đề bài
Mô tả
Có bóng đèn xếp thành một hàng, đánh số từ đến từ trái sang phải. Ban đầu có đúng bóng đang sáng, các bóng còn lại đều tắt.
Bạn muốn bật sáng tất cả các bóng đèn. Ở mỗi bước, bạn được phép bật một bóng đèn đang tắt, với điều kiện ít nhất một trong hai bóng kề nó (bóng bên trái hoặc bóng bên phải) đang sáng tại thời điểm đó.
Mỗi cách bật đèn được xác định bởi thứ tự các bóng được bật lên. Hai cách được coi là khác nhau nếu dãy thứ tự bật khác nhau.
Hãy đếm số cách khác nhau để bật sáng toàn bộ bóng đèn, lấy phần dư khi chia cho .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và -- số bóng đèn và số bóng đang sáng ban đầu.
- Dòng thứ hai chứa số nguyên đôi một phân biệt, là chỉ số của các bóng đang sáng. Các số này không đảm bảo được cho theo thứ tự tăng dần.
Dữ liệu ra
In ra một số nguyên duy nhất: số cách bật sáng toàn bộ các bóng đèn, lấy phần dư cho .
Ràng buộc
- Các chỉ số bóng sáng nằm trong và đôi một phân biệt.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 1 1 |
1 | Chỉ bóng sáng. Bóng chưa thể bật vì bóng đang tắt, nên bắt buộc bật rồi mới tới . Đúng cách. |
| 4 2 1 4 |
2 | Hai bóng tắt là và , mỗi bóng đều đã có một hàng xóm đang sáng. Có thể bật theo thứ tự hoặc . |
| 11 2 4 8 |
6720 | Ba đoạn tắt: , , . Hai đoạn ở hai biên chỉ có duy nhất một thứ tự bật, còn đoạn giữa có thứ tự; kết hợp với việc trộn xen kẽ ba đoạn được cách. |
Bình luận