Mảng không palindrome
Đề bài
Mô tả
Một mảng được gọi là xấu nếu nó chứa một dãy con liên tiếp có độ dài lẻ lớn hơn (tức là và là số lẻ) sao cho với mọi ta có .
Nói cách khác, là xấu nếu nó chứa một dãy con liên tiếp độ dài lẻ là một palindrome. Nếu mảng không xấu thì gọi là tốt.
Cho mảng trong đó một số phần tử đã bị thay bởi . Hãy đếm số mảng tốt có thể nhận được bằng cách thay mỗi bởi một số nguyên trong đoạn .
Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên — mỗi bằng hoặc nằm trong đoạn .
Dữ liệu ra
- In ra một số nguyên duy nhất là số mảng tốt thu được, lấy theo modulo .
Ràng buộc
- .
- Mỗi bằng hoặc nằm trong .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 3 -1 -1 |
9 | Mảng dài không thể chứa dãy con palindrome lẻ dài , nên tất cả cách điền đều cho mảng tốt. |
| 5 2 1 -1 -1 1 2 |
0 | Vị trí và đều bằng . Bất kỳ giá trị nào điền vào vị trí cũng tạo ra palindrome độ dài ở vị trí hoặc . |
| 5 3 1 -1 -1 1 2 |
2 | Chỉ có hai mảng tốt: và . |
| 4 200000 -1 -1 12345 -1 |
735945883 | Đáp số lấy theo modulo. |
Bình luận