trang chủ / bài tập / password1

Mật khẩu

Đề bài

Mô tả

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=t1t2tn (gồm n ký tự, mỗi ký tự thuộc a đến z) và dãy số nguyên a1,a2,,am (1a1<a2<<amn) là dãy số mà hai bạn đã thống nhất thì mật khẩu là một xâu P=ta1ta2tam, 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í a1,a2,,am. Ví dụ, T=missyouuu và dãy số a1=2,a2=3,a3=5,a4=6,a5=8 thì mật khẩu 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 a1=2,a2=4,a3=5,a4=6,a5=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 TE (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ã hóa 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=missyouuuuuuuu thì TE=m1i1s2y1o1u10.

Yêu cầu: Cho xâu TE (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 109+7.

Dữ liệu vào

  • 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.

Dữ liệu ra

  • Ghi một số nguyên duy nhất là số R chia dư cho 109+7.

Ràng buộc

  • 20% số lượng test ứng với 20% số điểm thỏa mãn điều kiện: n20,m=1.
  • 20% số lượng test khác ứng với 20% số điểm thỏa mãn điều kiện: n20,m<n.
  • 20% số lượng test ứng khác với 20% số điểm thỏa mãn điều kiện: n105,m=3.
  • 20% số lượng test khác ứng với 20% số điểm thỏa mãn điều kiện: n105,m30.
  • 20% số lượng test còn lại ứng với 20% số điểm thỏa mãn điều kiện: n109,m30 và xâu mã hóa của xâu T có độ dài không vượt quá 105.

Ví dụ

Input Output Giải thích
9 5
m1i1s2y1o1u3
isyou
6 Xâu T=missyouuu. Có 6 dãy số khác nhau để xác định mật khẩu P="isyou" trong T.
11 3
m1i1s2i1s2i1p2i1
isi
14 Xâu T=missississippi... Có 14 dãy số khác nhau xác định mật khẩu P="isi" trong T.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0