E - Strings of Impurity Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 500

問題文

英小文字からなる二つの文字列 s, t が与えられます。次の条件を満たす整数 i (1 \leq i \leq 10^{100} \times |s|) が存在するか判定し、存在する場合はそのような i の最小値を求めてください。

  • s10^{100} 個連結して得られる文字列を s' とする。t は、文字列 {s'}_1{s'}_2\ldots{s'}_i (s' の先頭 i 文字) の部分列である。

注記

  • 文字列 a の部分列とは、a から 0 文字以上を削除して残った文字を相対的な順序を保ったまま連結して得られる文字列です。例えば、contest の部分列には net, c, contest などがあります。

制約

  • 1 \leq |s| \leq 10^5
  • 1 \leq |t| \leq 10^5
  • s, t は英小文字からなる。

入力

入力は以下の形式で標準入力から与えられる。

s
t

出力

条件を満たす整数 i が存在する場合はそのような i の最小値を、存在しない場合は -1 を出力せよ。


入力例 1

contest
son

出力例 1

10

t = son は文字列 contestcon (s' = contestcontestcontest... の先頭 10 文字) の部分列であるため、i = 10 は条件を満たします。

一方で、t は文字列 contestco (s' の先頭 9 文字) の部分列ではないため、i = 9 は条件を満たしません。

同様に、8 以下の任意の整数も条件を満たしません。よって、条件を満たす整数 i の最小値は 10 です。


入力例 2

contest
programming

出力例 2

-1

t = programmings' = contestcontestcontest... の部分列ではありません。よって、条件を満たす整数 i は存在しません。


入力例 3

contest
sentence

出力例 3

33

ここにそのようなケースを置くことはできませんが、答えは 32 bit 整数に収まらない可能性があるのでご注意ください。

Score : 500 points

Problem Statement

Given are two strings s and t consisting of lowercase English letters. Determine if there exists an integer i satisfying the following condition, and find the minimum such i if it exists.

  • Let s' be the concatenation of 10^{100} copies of s. t is a subsequence of the string {s'}_1{s'}_2\ldots{s'}_i (the first i characters in s').

Notes

  • A subsequence of a string a is a string obtained by deleting zero or more characters from a and concatenating the remaining characters without changing the relative order. For example, the subsequences of contest include net, c, and contest.

Constraints

  • 1 \leq |s| \leq 10^5
  • 1 \leq |t| \leq 10^5
  • s and t consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

s
t

Output

If there exists an integer i satisfying the following condition, print the minimum such i; otherwise, print -1.


Sample Input 1

contest
son

Sample Output 1

10

t = son is a subsequence of the string contestcon (the first 10 characters in s' = contestcontestcontest...), so i = 10 satisfies the condition.

On the other hand, t is not a subsequence of the string contestco (the first 9 characters in s'), so i = 9 does not satisfy the condition.

Similarly, any integer less than 9 does not satisfy the condition, either. Thus, the minimum integer i satisfying the condition is 10.


Sample Input 2

contest
programming

Sample Output 2

-1

t = programming is not a substring of s' = contestcontestcontest.... Thus, there is no integer i satisfying the condition.


Sample Input 3

contest
sentence

Sample Output 3

33

Note that the answer may not fit into a 32-bit integer type, though we cannot put such a case here.