Olympic ĐHQGHN 2026 - Chia nhóm ôn tập

Xem dạng PDF

Gửi bài giải

Điểm: 40,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Lớp của Minh có ~n~ học sinh đứng thành một hàng, đánh số từ ~1~ đến ~n~ theo thứ tự từ đầu hàng. Học sinh thứ ~i~ có mức học lực là số nguyên dương ~a_i~. Một số học sinh trong lớp là cán sự lớp.

Cô giáo chủ nhiệm chia cả hàng thành các nhóm ôn tập. Mỗi nhóm gồm những học sinh đứng liên tiếp nhau trong hàng, và mỗi học sinh thuộc đúng một nhóm. Một nhóm được gọi là hợp lệ nếu thỏa mãn đồng thời hai điều kiện:

  • Trong nhóm có không quá ~K~ mức học lực khác nhau, để các bạn trong nhóm còn kèm cặp được nhau.

  • Trong nhóm có ít nhất một cán sự lớp, để nhóm có người điều hành.

Một cách chia được gọi là hợp lệ nếu mọi nhóm trong cách chia đó đều hợp lệ. Hai cách chia được coi là khác nhau nếu tồn tại hai học sinh thuộc cùng một nhóm ở cách chia này nhưng thuộc hai nhóm khác nhau ở cách chia kia.

Hãy đếm số cách chia hợp lệ. Do kết quả có thể rất lớn, hãy in ra số dư khi lấy kết quả chia cho ~10^9 + 7~.

Input

  • Dòng đầu tiên: hai số nguyên ~n~ và ~K~ ~(1 \le n \le 2 \cdot 10^5;\ 1 \le K \le 10^9)~.

  • Dòng thứ hai: ~n~ số nguyên ~a_1, a_2, \dots, a_n~ ~(1 \le a_i \le 10^9)~ là mức học lực của từng học sinh.

  • Dòng thứ ba: một xâu gồm ~n~ ký tự "0" hoặc "1"; ký tự thứ ~i~ bằng "1" nếu học sinh thứ ~i~ là cán sự lớp, bằng "0" nếu ngược lại.

Output

In ra một số nguyên là số cách chia hợp lệ, ~\bmod 10^9 + 7~. Nếu không có cách chia hợp lệ nào thì in ra 0.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~n \le 20~
2 ~20\%~ ~n \le 2000~
3 ~20\%~ ~K \ge n~
4 ~20\%~ Mọi học sinh đều là cán sự lớp.
5 ~20\%~ Không có giới hạn gì thêm

Sample Input 1

5 2
1 2 1 3 3
10101

Sample Output 1

5

Notes

Các cán sự lớp là học sinh ~1~, ~3~ và ~5~. Dưới đây là ~5~ cách chia hợp lệ (dấu ~|~ ngăn cách hai nhóm liền nhau):

  • ~1\ 2\ |\ 3\ 4\ 5~

  • ~1\ 2\ 3\ |\ 4\ 5~

  • ~1\ |\ 2\ 3\ |\ 4\ 5~

  • ~1\ 2\ |\ 3\ |\ 4\ 5~

  • ~1\ 2\ |\ 3\ 4\ |\ 5~

Cách chia ~1\ |\ 2\ 3\ 4\ 5~ không hợp lệ vì nhóm ~2\ 3\ 4\ 5~ có ba mức học lực khác nhau là ~2, 1, 3~, nhiều hơn ~K = 2~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.