trang chủ / đề bài / dhbb23_csl_11_a

Biển hiệu

Đề bài

Mô tả

Anh H mới mở một tiệm bán cá tươi và giờ anh cần một tấm biển mới cho cửa hàng của mình. H tin tưởng nhờ một người bạn của anh là anh K làm thiết kế cho anh một tấm biển. Anh K tuy bận việc khác nhưng không muốn bạn mình buồn nên anh ấy chấp nhận công việc này. Đến ngày đưa bản thiết kế, anh K chỉ có thể đưa cho bạn mình bản thiết kế chưa hoàn thành. Nhận ra bạn mình đang bận, H nhận lấy bản chưa hoàn thành và in ra thành nhiều bản, dán các bản nối tiếp nhau theo thứ tự rồi xóa đi các chữ cái thừa (không thay đổi thứ tự các chữ cái còn lại) để tạo ra tấm biển của mình.

Ví dụ, biển cửa tiệm là "banca" mà bản thiết kế chỉ có "cabn". Nếu anh H in ra ba bản và ghép các bản thiết kế lại với nhau, anh sẽ được "cabncabncabn", rồi anh xóa các vị trí 1,2,4,5,7,11 và 12 thì được tấm biển mong muốn.

Yêu cầu: Hãy xác định số bản thiết kế ít nhất anh H cần in để có thể ghép thành tấm biển mong muốn.

Dữ liệu vào

  • Dòng thứ nhất chứa xâu X gồm các chữ cái Latin viết thường, là bản thiết kế anh H nhận được (1≤|X|≤104).
  • Dòng thứ hai chứa xâu Y gồm các chữ cái Latin viết thường, là nội dung tấm biển anh H muốn tạo (1≤|Y|≤106).

Dữ liệu ra

In ra số bản thiết kế ít nhất anh H cần in. Nếu không thể tạo được tấm biển thì in ra −1.

Ràng buộc

  • 1≤|X|≤104, 1≤|Y|≤106.
  • X và Y chỉ gồm các chữ cái Latin viết thường.

Subtasks

  • Subtask 1 (20% số điểm): |X|,|Y|≤100.
  • Subtask 2 (20% số điểm): |X|,|Y|≤1000.
  • Subtask 3 (20% số điểm): |Y|≤105.
  • Subtask 4 (40% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
cabn
banca
3 Ghép ba bản được "cabncabncabn", giữ lại các vị trí 3,6,8,9,10 được "banca". Hai bản "cabncabn" không đủ.
ab
aab
2 Ví dụ bổ sung. Mỗi chữ cái của một bản chỉ dùng được một lần: hai chữ "a" phải lấy từ hai bản khác nhau, "abab" chứa "aab".
abc
abd
-1 Ví dụ bổ sung. Chữ "d" không có trong bản thiết kế nên không thể tạo được tấm biển.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0