AT_xmascon19_j Sub-Post Correspondence Problem
Description
[problemUrl]: https://atcoder.jp/contests/xmascon19/tasks/xmascon19_j
$ N $ 種類のカードが,それぞれ $ 2019^{2019} $ 枚ずつある.
$ i $ 種類目のカードには,上側に文字列 $ A_i $ が,下側に文字列 $ B_i $ が書かれている.
これらのカードから $ 1 $ 枚以上を選び,好きな順で一列に並べることを考える.このとき,並べられた各カードの上側に書かれている文字列を繋げたものを $ s $,下側に書かれている文字列を繋げたものを $ t $ とする.
次の条件を満たすようにカードを選んで並べることはできるだろうか?
- 条件: $ s $ から **$ 0 $ 文字以上の好きな箇所の文字を選んで消すことで** $ t $ に一致させることができる.
Input Format
> $ N $ $ A_1 $ $ B_1 $ $ A_2 $ $ B_2 $ $ \vdots $ $ A_N $ $ B_N $
Output Format
条件を満たすようにカードを選んで並べることが可能なら `YES`,そうでなければ `NO` と出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 16 $.
- $ 1\ \leq\ |A_i|,\ |B_i|\ \leq\ 10^5 $.
- $ A_i $, $ B_i $ は英小文字のみからなる文字列である.
### Sample Explanation 1
たとえば,$ 2 $ 種類目,$ 2 $ 種類目,$ 1 $ 種類目の順にカードを並べると,$ s\ = $`acbaacbacab`, $ t\ = $`ababac` となり,これは条件を満たす.