#750. Tin nhắn bí mật (Mã bài: SECRET)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Bessie đang lãnh đạo đàn bò bỏ trốn. Để liên lạc, những con bò gửi cho nhau các tin nhắn bí mật.

Các tin nhắn là dạng nhị phân, có tổng cộng N tin nhắn. John, người có khả năng phản gián rất mạnh, đã chặn được một phần các tin nhắn này và biết được b_i bit đầu tiên của tin nhắn nhị phân thứ i . Anh ta cũng biết rằng đàn bò sử dụng M mã mật khẩu. Tuy nhiên, anh ta chỉ biết được c_j bit đầu tiên của mật khẩu thứ j .

Đối với mỗi mật khẩu j , anh ta muốn biết có bao nhiêu tin nhắn bị chặn khớp với nó. Nói cách khác, có bao nhiêu tin nhắn và mật khẩu này có cùng tiền tố. Tất nhiên, độ dài của tiền tố chung này phải bằng độ dài của chuỗi ngắn hơn trong hai chuỗi (tin nhắn và mật khẩu).

Dữ liệu:

  • Dòng đầu tiên nhập vào N M .
  • Tiếp theo là N dòng mô tả các tin nhắn bí mật, sau đó là M dòng mô tả các mật khẩu.
  • Mỗi dòng bắt đầu bằng một số nguyên biểu thị độ dài của tin nhắn hoặc mật khẩu, theo sau là nội dung của tin nhắn hoặc mật khẩu đó (là các chuỗi nhị phân).
  • Tất cả các số đều được phân tách bằng dấu cách.

Kết quả:

  • Gồm M dòng, mỗi dòng in ra số lượng tin nhắn khớp với mật khẩu tương ứng.

Ví dụ:

Dữ liệu:

4 5
3 0 1 0
1 1
3 1 0 0
3 1 1 0
1 0
1 1
2 0 1
5 0 1 0 0 1
2 1 1

Kết quả:

1
3
1
1
2

Giới hạn: 1\le M\le 50000, 1\le N\le 50000, 1\le b_i\le 10000, 1\le c_j\le 10000 . Tổng số bit (tức \sum b_i + \sum c_i ) sẽ không vượt quá 500000 .