这题把我都整蒙了
题号:NC214260
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Lemon 丢给你两个字母序列 ,并无情地交给了你一个奇怪的任务——求最长非公共子序列。
序列a 是 b 的子序列,当且仅当从 b 中删除一些元素(可以是零个或所有)能得到 a。
例如:
我们可以通过从"abcde" 中删除 "b" 和 "d" 得到 "ace",因此 "ace" 是 "abcde" 的子序列。
同理"abcde","e" 和空串 都是 "abcde" 的子序列;

但"abdc" 不是 "abcde" 的子序列。

序列c 是 的非公共子序列当且仅当它满足以下条件中的任何一个:

· c是的子序列但不是s2的子序列;

· c是的子序列但不是s1的子序列。

的非公共子序列可能有很多,你只需要求出其中长度最长的非公共子序列的长度。

输入描述:

第一行包含一个字符串s1,第二行包含一个字符串s2.()

输出描述:

在一行输出一个整数,表示最长非公共子序列的长度。
特别地,如果不存在非公共子序列,输出-1 。

示例1

输入

复制
aba
abc

输出

复制
3
示例2

输入

复制
lemon
lemon

输出

复制
-1