QOJ.ac

QOJ

Limite de temps : 3 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#18671. gấp đôi

Statistiques

Mingoo đã phát triển một ứng dụng chat thế hệ mới, ChatChatA!

Sau khi triển khai ChatChatA, một báo cáo lỗi nghiêm trọng đã được gửi đến Mingoo! Trong quá trình nhập tin nhắn, khi ký tự cuối cùng của tin nhắn là một ký tự nhất định, nếu nhập một ký tự cụ thể, tin nhắn sẽ bị "nhân đôi"!

Giải thích một cách chính xác, "nhân đôi" có nghĩa như sau:

  • Gọi tin nhắn đang được nhập là $M$, ký tự cuối cùng của $M$ là $s$, và ký tự sắp nhập là $c$.
  • Gọi tập hợp các cặp $(s, c)$ làm cho tin nhắn "nhân đôi" là $D$.
    • Nếu $(s, c) \in D$, thì khi nhập $c$, $M$ sẽ trở thành $M + M + c$ thay vì $M + c$!
    • Nếu $(s, c) \notin D$, thì khi nhập $c$, $M$ sẽ trở thành $M + c$.
  • Nếu $M$ là xâu rỗng, $M$ sẽ không bị "nhân đôi".

Người dùng ChatChatA là Gumingoo muốn biết số thao tác nhập tối thiểu để nhập được xâu $T$.

Ban đầu tin nhắn $M$ là xâu rỗng, và mỗi thao tác nhập là một trong hai hành động sau:

  • Thêm ký tự $c$ vào $M$. Theo điều kiện trên, tin nhắn có thể bị "nhân đôi".
  • Xóa ký tự cuối cùng của $M$. Chỉ có thể chọn hành động này khi $M$ không phải là xâu rỗng.

Hãy giúp Gumingoo tìm số thao tác nhập tối thiểu để tin nhắn hiện tại $M$ trở thành $T$!

Dữ liệu vào

Dòng đầu tiên chứa kích thước $N$ của $D$. ($1 \le N \le 676 = 26^2$)

Dòng thứ hai chứa xâu $S$ gồm $N$ chữ cái tiếng Anh in thường, dòng thứ ba chứa xâu $C$ gồm $N$ chữ cái tiếng Anh in thường.

Gọi $S_i$ là ký tự thứ $i$ của $S$, $C_i$ là ký tự thứ $i$ của $C$, thì $D=\{(S_i, C_i) : 1 \le i \le N\}$.

$|D|=N$. Nghĩa là, không có cặp $(S_i, C_i)$ nào trùng nhau.

Dòng thứ tư chứa xâu $T$ gồm các chữ cái tiếng Anh in thường cần nhập. ($1 \le |T| \le 500\,000$)

Dữ liệu ra

Dòng đầu tiên in ra số thao tác nhập tối thiểu cần thiết để biến tin nhắn hiện tại thành $T$.

Nếu không thể biến tin nhắn hiện tại thành $T$ thì in ra $-1$.

Ví dụ

Dữ liệu vào 1

1
t
a
chatchata

Dữ liệu ra 1

5

Dữ liệu vào 2

2
ct
ha
chatchata

Dữ liệu ra 2

-1

Dữ liệu vào 3

2
af
bd
aafaaafaafaaafd

Dữ liệu ra 3

8

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.