Hai mảng
Đề bài
Mô tả
Cho hai mảng và , trong đó mảng tăng ngặt ( với mọi từ đến ).
Bạn cần chia mảng thành mảng con liên tiếp và khác rỗng sao cho với mọi từ đến , giá trị nhỏ nhất của mảng con thứ đúng bằng . Mỗi phần tử thuộc đúng một mảng con: một số phần tử đầu tiên của tạo thành mảng con thứ nhất, một số phần tử tiếp theo tạo thành mảng con thứ hai, và cứ thế tiếp tục.
Ví dụ, nếu và thì có đúng hai cách chia hợp lệ:
- , , ;
- , , .
Hãy đếm số cách chia mảng . Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho .
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên và — độ dài của mảng và mảng .
- Dòng thứ hai chứa số nguyên .
- Dòng thứ ba chứa số nguyên .
Dữ liệu ra
In ra một số nguyên duy nhất — số cách chia mảng , lấy phần dư khi chia cho .
Ràng buộc
- với mọi từ đến
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 3 12 10 20 20 25 30 10 20 30 |
2 | Hai cách chia được liệt kê ở phần mô tả. Mảng con thứ ba buộc phải là , còn ranh giới giữa hai mảng con đầu có hai vị trí. |
| 8 2 1 2 2 2 2 2 2 2 1 2 |
7 | Mảng con thứ nhất phải chứa phần tử nên nó bắt đầu từ vị trí ; mảng con thứ hai có thể bắt đầu tại bất kỳ vị trí nào trong , cho cách. |
| 4 2 1 3 3 7 3 7 |
0 | Giá trị nhỏ nhất của toàn mảng là , nhưng , nên không có cách chia nào hợp lệ. |
Bình luận