Mã hóa xâu con
Đề bài
Mô tả
Ta gọi một phép mã hóa là một cách chọn ra một số cặp chữ cái trong bảng chữ cái tiếng Anh thường, sao cho mỗi chữ cái xuất hiện trong nhiều nhất một cặp. Khi mã hóa một xâu, ta thay thế mỗi chữ cái bằng chữ cái đi cùng cặp với nó (nếu có); những chữ cái không thuộc cặp nào thì giữ nguyên.
Ví dụ, nếu chọn các cặp , và thì xâu "parallelogram" sẽ biến thành "qolorreraglom".
Cho hai xâu và gồm các chữ cái tiếng Anh thường. Hãy tìm tất cả các vị trí () sao cho xâu con có thể biến thành bằng một phép mã hóa nào đó (mỗi vị trí được phép dùng một bộ cặp riêng).
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — độ dài của và .
- Dòng thứ hai chứa xâu .
- Dòng thứ ba chứa xâu .
Cả hai xâu chỉ gồm các chữ cái tiếng Anh thường.
Dữ liệu ra
- Dòng đầu in ra số — số vị trí thỏa mãn.
- Dòng thứ hai in ra số nguyên theo thứ tự tăng dần, cách nhau bởi dấu cách. Nếu , in ra một dòng trống.
Ràng buộc
- .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 21 13 paraparallelogramgram qolorreraglom |
1 5 |
Xâu con bắt đầu tại vị trí là "parallelogram"; với các cặp nó mã hóa thành "qolorreraglom". |
| 11 5 abacabadaba acaba |
3 1 3 7 |
Ba xâu con "abaca", "acaba", "adaba" đều có thể mã hóa thành "acaba" (ví dụ vị trí : cặp biến "abaca" thành "acaba"; vị trí : giữ nguyên). |
Bình luận