#754. Mật khẩu huyền vũ (PASSWORD)

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

Cho một xâu ký tự chính S có độ dài N và một tập hợp gồm M xâu truy vấn P_1, P_2, \dots, P_M . Tất cả các ký tự trong các xâu này đều thuộc tập hợp ký tự \Sigma = \{ \text{'E', 'S', 'W', 'N'} \} .

Nhiệm vụ của bạn là với mỗi xâu truy vấn P_i , hãy tìm độ dài k lớn nhất sao cho tiền tố độ dài k của P_i xuất hiện như một chuỗi con liên tiếp (substring) bên trong xâu chính S .

Nói cách khác, với mỗi P_i , hãy tìm \max(k) sao cho P_i[1..k] là một chuỗi con của S .

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên dương N M , lần lượt là độ dài của xâu chính S và số lượng xâu truy vấn.
  • Dòng thứ hai chứa xâu chính S có độ dài N . Các ký tự thuộc tập \{ \text{'E', 'S', 'W', 'N'} \} .
  • M dòng tiếp theo, mỗi dòng chứa một xâu truy vấn P_i . Các ký tự thuộc tập \{ \text{'E', 'S', 'W', 'N'} \} .

Kết quả:

  • Gồm M dòng tương ứng với M xâu truy vấn.
  • Mỗi dòng in ra một số nguyên duy nhất là độ dài của tiền tố dài nhất tìm được cho xâu truy vấn đó.

Ví dụ:

Dữ liệu:

7 3
SNNSSNS
NNSS
NNN
WSEE

Kết quả:

4
2
0

Giới hạn: 1\le N\le 10^7, 1\le M\le 10^5 , đảm bảo độ dài mỗi đoạn văn bản mật mã nhỏ hơn hoặc bằng 100 .