C. Double-ended Strings

time limit per test

2 seconds

memory limit per test

256 megabytes

You are given the strings a and b, consisting of lowercase Latin letters. You can do any number of the following operations in any order:

  • if |a|>0 (the length of the string a is greater than zero), delete the first character of the string a, that is, replace a with a2a3...an;
  • if |a|>0, delete the last character of the string a, that is, replace a with a1a2...an−1;
  • if |b|>0 (the length of the string b is greater than zero), delete the first character of the string b, that is, replace b with b2b3...bn;
  • if |b|>0, delete the last character of the string b, that is, replace b with b1b2...bn−1.

Note that after each of the operations, the string a or b may become empty.

For example, if a="hello" and b="icpc", then you can apply the following sequence of operations:

  • delete the first character of the string a ⇒ a="ello" and b="icpc";
  • delete the first character of the string b ⇒ a="ello" and b="cpc";
  • delete the first character of the string b ⇒ a="ello" and b="pc";
  • delete the last character of the string a ⇒ a="ell" and b="pc";
  • delete the last character of the string b ⇒ a="ell" and b="p".

For the given strings a and b, find the minimum number of operations for which you can make the strings a and b equal. Note that empty strings are also equal.

Input

The first line contains a single integer t (1≤t≤100). Then t test cases follow.

The first line of each test case contains the string a (1≤|a|≤20), consisting of lowercase Latin letters.

The second line of each test case contains the string b (1≤|b|≤20), consisting of lowercase Latin letters.

Output

For each test case, output the minimum number of operations that can make the strings a and b equal.

Example

Input

Copy

复制代码
5
a
a
abcd
bc
hello
codeforces
hello
helo
dhjakjsnasjhfksafasd
adjsnasjhfksvdafdser

Output

Copy

复制代码
0
2
13
3
20

解题说明:此题是一道字符串题,为了让a和b相等删掉的字母尽可能少,那么就找出a和b中间最长的相同子串,然后用总长度之和减去子串长度的2倍即可。

cpp 复制代码
#include<stdio.h>
#include<string.h>
int main()
{
	int t;
	scanf("%d", &t);
	while (t--)
	{
		int s = 0, max = 0, i, j, l1, l2;
		char a[30], b[30];
		scanf("%s %s", a, b);
		l1 = strlen(a);
		l2 = strlen(b);
		for (i = 0; i < l1; i++)
		{
			for (j = 0; j < l2; j++)
			{
				s = 0;
				if (a[i] == b[j])
				{
					while (a[i + s] == b[j + s] && a[i + s] != '\0' && b[j + s] != '\0')
					{
						s++;
					}
					if (s > max)
					{
						max = s;
					}
				}
			}
		}
		printf("%d\n", (l1 + l2) - (2 * max));
	}
	return 0;
}