Python言語で提出する際の諸注意

  • この問題においてPython言語で解く際は、必ず入力の後に strip 関数を適用してください
    つまり入力の際に S = input().strip() と書いてください(でないとジャッジの環境上、WAになる可能性が高いです)

Story

🐤

新年度もやっぱり Scottish Fold\text{Scottish Fold} さん(※フィクションです)を見ないと、今年を生きている感じがしません。

ところで Fold\text{Fold} とは日本語で「折りたたむ」という意味を持っています。
なので、Fold\text{Fold} という文字列をじゃばら折りとして折りたたんで、先頭と末尾の文字を除いてみてみましょう。

ぐしゃっ

お、Fd\text{Fd} になりましたね。ちょっと楽しいですねこれ^^。
これをシミュレーションしてみましょう。

問題

文字列 S,TS,T が与えられます。次のいずれの条件を満たすような文字列 XX を求めてください。

  • SS に対する任意の長さ 33 以上の連続部分文字列 XX において、XX の先頭および末尾の文字を除いた文字列を AA とする。
  • TT において連続する 22 文字の間に AA を順序を保ったまま挿入することで、挿入後に T=ST=S を満たすような挿入方法が少なくとも一つ存在する。

厳密には、SS に対する ll 文字目から rr 文字目までの連続部分文字列 X=SlSl+1Sr1SrX=S_lS_{l+1}\dots S_{r-1}S_{r} とすると、A=Sl+1Sl+2Sr2Sr1A=S_{l+1}S_{l+2}\dots S_{r-2}S_{r-1} となります。
そして TTa (1aT1)a\ (1\le a\le |T|-1) 文字目と a+1a+1 文字目の間に AA を挿入すると、挿入後は T=T1T2TaSl+1Sl+2Sr1Ta+1TTT'=T_1T_2\dots T_a \bm{S_{l+1}S_{l+2}\dots S_{r-1}} T_{a+1}\dots T_{|T|} となります。
このとき TT'SS に一致するような XX を求めてください。

なお本問題の制約下で、答えとなる XX は一意に定まることが保証されます。

S|S| とは

文字列 SS に対して、S|S|SS の長さを表します。

入力

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

SS
TT

制約

  • 2T<S5002\le |T|\lt |S|\le 500
  • 2ST2\le |S|-|T|
  • 答えは一意に定まる
  • 文字列は英小文字からなる

出力

答えとなる XX を出力せよ。

入出力例

入力例1
scottishfold
scottishfd
出力例1
fold

X=X= fold とすると、A=A= ol となります。ここで TT9,109,10 文字目の 22 文字の間に AA を挿入することで SS に一致することができます。
他にも候補となる XX はありますが、それらについては問題の条件を満たすような挿入方法は存在しません。

入力例2
abba
aa
出力例2
abba

X=SX=S であることがあります。

入力例3
matcharate
matcrate
出力例3
char

提出


Go (1.21)