HSG9 Vĩnh Phúc 2025 - Xâu rút gọn

Xem dạng PDF

Gửi bài giải


Điểm: 30,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

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

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Một xâu ~A~ được gọi là rút gọn của xâu ~B~ nếu ta có thể tạo ra ~A~ bằng cách xóa đi 0 hoặc nhiều ký tự trong ~B~ mà không thay đổi thứ tự các ký tự còn lại. Theo định nghĩa này, một xâu luôn là xâu rút gọn của chính nó.

Chẳng hạn:

  • "ac", "ab", "aa" là các xâu rút gọn của "aabc";
  • "d", "aaa", "ba" không phải là xâu rút gọn của "aabc".

Cho hai xâu ~S~ và ~T~ chỉ gồm các ký tự chữ cái tiếng Anh thường. Gọi ~T^n~ là xâu được tạo ra bằng cách nối ~n~ xâu ~T~ lại với nhau.

Hãy tìm giá trị nhỏ nhất của ~n~ sao cho ~S~ là một xâu rút gọn của xâu ~T^n~.

Yêu cầu: Hãy tìm giá trị nhỏ nhất của ~n~ thỏa mãn điều kiện trên. Nếu không tồn tại giá trị ~n~ như vậy thì in ra -1.

Input

  • Dòng 1: xâu ~S~ với độ dài ~|S|~ (~1 \le |S| \le 10^6~).
  • Dòng 2: xâu ~T~ với độ dài ~|T|~ (~1 \le |T| \le 10^5~).

Output

Dòng 1: số nguyên là giá trị ~n~ nhỏ nhất sao cho ~S~ là xâu rút gọn của ~T^n~. Nếu không tồn tại giá trị ~n~ như vậy thì in ra -1.

Sample Input 1

caa
ac

Sample Output 1

3

Giải thích: Ta có: ~T^1 = T = abc~, ~T^2 = abcabc~, ~T^3 = abcabcabc~. Với ~n = 3~ là giá trị nhỏ nhất sao cho ~S~ là xâu rút gọn của ~T^n~.

Sample Input 2

cab
acca

Sample Output 2

-1

Subtasks

  1. 8% điểm dành cho các test có ~S~ và ~T~ chỉ chứa ký tự 'a';
  2. 13% điểm khác dành cho các test có ~|S|, |T| \le 100~;
  3. 21% điểm khác dành cho các test có ~|S| \le 10^4, |T| \le 100~;
  4. 34% điểm khác dành cho các test có ~|S| \le 10^5, |T| \le 1000~;
  5. 24% điểm còn lại không có ràng buộc bổ sung.

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.