Duyên Hải 2020 - Lớp 11 - Bài 1 - Mật khẩu

View as PDF

Submit solution

Points: 0.60 (partial)
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Do dịch Covid-19, hai bạn Hồng và Chi không được đi học và gặp nhau nhưng hai bạn vẫn thường xuyên nhắn tin cho nhau. Một lần, Hồng muốn gửi mật khẩu tham gia lớp học online cho Chi nhưng không muốn em Phúc tò mò và biết được. Theo ý tưởng giấu tin trong ảnh, Hồng quyết định sẽ giấu mật khẩu vào trong đoạn văn bản gửi cho Chi. Cụ thể, với một văn bản mà Hồng gửi cho Chi được biểu diễn bằng xâu ký tự ~T =~ t1t2 ...tn (gồm ~n~ ký tự, mỗi ký tự thuộc ′a′ đến ′z′) và dãy số nguyên ~a_1~, ~a_2, \dots, a_m~ ~(1 \leq a_1 < a_2 < \dots < a_m \leq n)~ là dãy số mà hai bạn đã thống nhất thì mật khẩu là một xâu ~P = t_{a_1}t_{a_2} \dots t_{a_m}~, là xâu độ dài ~m~ nhận được bằng cách ghép lần lượt các ký tự ở các vị trí ~a_1~, ~a_2~, ..., ~a_m~. Ví dụ, ~T =~ "missyouuu" và dãy số ~a_1 = 2~, ~a_2 = 3~, ~a_3 = 5~, ~a_4 = 6~, ~a_5 = 8~ thì mật khẩu là ~P =~ "isyou".

Hồng nhanh chóng nhận ra rằng, với một xâu ~T~ và mật khẩu ~P~ sẽ tồn tại nhiều dãy số để xác định mật khẩu. Ví dụ, một dãy số khác ~a_1 = 2~, ~a_2 = 4~, ~a_3 = 5~, ~a_4 = 6~, ~a_5 = 7~ cũng xác định được mật khẩu ~P =~ "isyou" trong xâu ~T =~ "missyouuu".

Trong quá trình gửi, xâu ~T~ sẽ được mã hóa theo phương thức RLE (Run Length Encoding). Nghĩa là, một xâu ~T~ chỉ gồm các ký tự 'a' đến 'z' được mã hóa thành xâu ~T_E~ (chỉ gồm các ký tự 'a' đến 'z' và ký tự '0' đến '9') bằng cách đi từ trái sang phải, mã hoá dãy các ký tự liên tiếp giống nhau trong ~T~ thành ký tự đại diện và số lượng. Ví dụ, xâu ~T =~ ′missyouuuuuuuuuu′ thì TE ~=~ ′ m1i1s2y1o1u10′.

Yêu cầu: Cho xâu ~T_{E}~ (là mã hóa của xâu ~T)~ và xâu mật khẩu ~P~, gọi ~R~ là số lượng dãy số khác nhau có thể xác định được mật khẩu ~P~ trong xâu ~T~. Hãy tính ~R~ chia dư cho ~10^9 + 7~.

Input

Dữ liệu vào gồm:

  • Dòng đầu chứa hai số nguyên dương ~n~, ~m~;
  • Dòng thứ hai chứa một xâu là mã hóa của xâu ~T~;
  • Dòng thứ ba chứa một xâu là xâu ~P~.

Output

Ghi ra một số nguyên duy nhất là số ~R~ chia dư cho ~10^{9} + 7~.

Giới hạn

  1. Có ~20\%~ số lượng test ứng với ~20\%~ số điểm thỏa mãn điều kiện: ~n \leq 20~, ~m = 1~;
  2. Có ~20\%~ số lượng test khác ứng với ~20\%~ số điểm thỏa mãn điều kiện: ~n \leq 20~, ~m < n~;
  3. Có ~20\%~ số lượng test ứng khác với ~20\%~ số điểm thỏa mãn điều kiện: ~n \leq 10^5~, ~m = 3~;
  4. Có ~20\%~ số lượng test khác ứng với ~20\%~ số điểm thỏa mãn điều kiện: ~n \leq 10^5~, ~m \leq 30~;
  5. Có ~20\%~ số lượng test còn lại ứng với ~20\%~ số điểm thỏa mãn điều kiện: ~n \leq 10^9~, ~m \leq 30~ và xâu mã hóa của xâu ~T~ có độ dài không vượt quá ~10^5~.

Sample Input 1

9 5
m1i1s2y1o1u3
isyou

Sample Output 1

6

Sample Input 2

11 3
m1i1s2i1s2i1p2i1
isi

Sample Output 2

14

Comments

Please read the guidelines before commenting.


There are no comments at the moment.