Điệp khúc (đề HSG 12 Quảng Bình 2023)

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: REPEAT.INP
Output: REPEAT.OUT

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Bản nhạc là một xâu gồm các ký tự 'A', 'B', 'C', 'D', 'E', 'F', 'G' tương ứng với các nốt La, Si, Đô, Rê, Mi, Fa, Son. Điệp khúc là một xâu con (một dãy liên tiếp các kí tự) của một bản nhạc nào đó và thường được lặp lại nhiều lần nhằm đẩy cao trào của bản nhạc lên cao. Tuy nhiên, hôm nay bản nhạc Tèo được giao quá dài và lại có nhiều đoạn gần giống nhau nên Tèo không biết đoạn nào là điệp khúc. Bạn hãy giúp Tèo tìm xem trong bản nhạc được giao có điệp khúc hay không và nếu có thì nằm ở những vị trí nào.

Cho bản nhạc Tèo được giao là ~S_1~ và điệp khúc là ~S_2~.

Yêu cầu: Tìm các vị trí xuất hiện của ~S_2~ trong ~S_1~.

Dữ liệu

  • Dòng 1 ghi số nguyên dương ~T~ là số bộ dữ liệu (~1 \le T \le 50~).
  • ~T~ dòng tiếp theo, mỗi dòng tương ứng với 1 bộ dữ liệu ghi 2 xâu ~S_1~ và ~S_2~ cách nhau bởi một dấu cách. Độ dài của xâu ~S_1~ và ~S_2~ nằm trong phạm vi từ 1 đến ~10^6~.

Kết quả

Với mỗi bộ dữ liệu ~S_1~ và ~S_2~, nếu ~S_2~ không xuất hiện trong ~S_1~ thì ghi số -1 trên một dòng. Ngược lại, ghi số lần xuất hiện của ~S_2~ trong ~S_1~ trên 1 dòng, dòng tiếp theo ghi các vị trí xuất hiện của ~S_2~ trong ~S_1~ (theo thứ tự tăng dần), các số cách nhau một dấu cách.

Lưu ý: Các kí tự trong xâu được đánh thứ tự bắt đầu từ 1. Các lần xuất hiện được tính cả khi chúng chồng lên nhau.

Ví dụ

REPEAT.INP

3
ababab ab
aaaaa bbb
aafafaasf aaf

REPEAT.OUT

3
1 3 5
-1
1
1

Bình luận

Hãy đọc nội quy trước khi bình luận.


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