310422: CF1831B. Array merging

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

B. Array mergingtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given two arrays $a$ and $b$ both of length $n$.

You will merge$^\dagger$ these arrays forming another array $c$ of length $2 \cdot n$. You have to find the maximum length of a subarray consisting of equal values across all arrays $c$ that could be obtained.

$^\dagger$ A merge of two arrays results in an array $c$ composed by successively taking the first element of either array (as long as that array is nonempty) and removing it. After this step, the element is appended to the back of $c$. We repeat this operation as long as we can (i.e. at least one array is nonempty).

Input

Each test contains multiple test cases. The first line of input contains a single integer $t$ ($1 \le t \le 10^4$) — the number of test cases. The description of test cases follows.

The first line of each test case contains a single integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the length of the array $a$ and $b$.

The second line of each test case contains $n$ integers $a_1,a_2,\ldots,a_n$ ($1 \le a_i \le 2 \cdot n$) — the elements of array $a$.

The third line of each test case contains $n$ integers $b_1,b_2,\ldots,b_n$ ($1 \le b_i \le 2 \cdot n$) — the elements of array $b$.

It is guaranteed that the sum of $n$ across all test cases does not exceed $2 \cdot 10^5$.

Output

For each test case, output the maximum length of a subarray consisting of equal values across all merges.

ExampleInput
4
1
2
2
3
1 2 3
4 5 6
2
1 2
2 1
5
1 2 2 2 2
2 1 1 1 1
Output
2
1
2
5
Note

In the first test case, we can only make $c=[2,2]$, thus the answer is $2$.

In the second test case, since all values are distinct, the answer must be $1$.

In the third test case, the arrays $c$ we can make are $[1,2,1,2]$, $[1,2,2,1]$, $[2,1,1,2]$, $[2,1,2,1]$. We can see that the answer is $2$ when we choose $c=[1,2,2,1]$.

Input

题意翻译

#### 题目描述 给定两个长度为 $n$ 的数组 $a$ 和 $b$。 猫猫让你合并这些数组,形成另一个长度为 $2n$ 的数组 $c$。你需要找到所有 $c$ 中元素值相同的子串长度的最大值。 合并过程是:每次选择任一非空数组中的第一个元素,将其添加到 $c$ 的末尾后从原数组中删除,这样的操作进行 $2n$ 次,直到两个数组都为空为止。 #### 输入格式 第一行包含整数 $t$,表示测试数据的数量。 对于每组测试数据: 第一行一个整数 $n$,表示数组 $a$ 和 $b$ 的长度。 第二行 $n$ 个整数 $a_1,a_2,\dots,a_n$,表示数组 $a$ 的元素。 第三行 $n$ 个整数 $b_1,b_2,\dots,b_n$,表示数组 $b$ 的元素。 保证所有测试数据中 $n$ 的总和不超过 $ 2 \cdot 10^5 $。 #### 输出格式 对于每个测试数据,输出跨所有合并数组 $c$ 的相等值的最大子数组的长度。

Output

题目大意:
这个题目是关于合并两个数组的。给定两个长度均为n的数组a和b,你可以通过轮流从a和b中取出第一个元素(只要数组不为空)然后将其添加到数组c的末尾的方式来合并这两个数组,形成一个新的数组c,其长度为2*n。你的任务是找出所有可能的数组c中,由相同值组成的最大子数组的长度。

输入数据格式:
输入包含多个测试用例。第一行包含一个整数t(1 ≤ t ≤ 10^4),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数n(1 ≤ n ≤ 2 * 10^5),表示数组a和b的长度。
第二行包含n个整数a_1, a_2, …, a_n(1 ≤ a_i ≤ 2 * n),表示数组a的元素。
第三行包含n个整数b_1, b_2, …, b_n(1 ≤ b_i ≤ 2 * n),表示数组b的元素。
保证所有测试用例的n之和不超过2 * 10^5。

输出数据格式:
对于每个测试用例,输出所有可能的数组c中,由相同值组成的最大子数组的长度。

例:
输入:
4
1
2
2
3
1 2 3
4 5 6
2
1 2
2 1
5
1 2 2 2 2
2 1 1 1 1

输出:
2
1
2
5

注意:
- 在第一个测试用例中,我们只能形成c=[2,2],因此答案是2。
- 在第二个测试用例中,由于所有值都是不同的,答案必须是1。
- 在第三个测试用例中,我们可以形成的数组c有[1,2,1,2],[1,2,2,1],[2,1,1,2],[2,1,2,1]。当我们选择c=[1,2,2,1]时,答案是2。题目大意: 这个题目是关于合并两个数组的。给定两个长度均为n的数组a和b,你可以通过轮流从a和b中取出第一个元素(只要数组不为空)然后将其添加到数组c的末尾的方式来合并这两个数组,形成一个新的数组c,其长度为2*n。你的任务是找出所有可能的数组c中,由相同值组成的最大子数组的长度。 输入数据格式: 输入包含多个测试用例。第一行包含一个整数t(1 ≤ t ≤ 10^4),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数n(1 ≤ n ≤ 2 * 10^5),表示数组a和b的长度。 第二行包含n个整数a_1, a_2, …, a_n(1 ≤ a_i ≤ 2 * n),表示数组a的元素。 第三行包含n个整数b_1, b_2, …, b_n(1 ≤ b_i ≤ 2 * n),表示数组b的元素。 保证所有测试用例的n之和不超过2 * 10^5。 输出数据格式: 对于每个测试用例,输出所有可能的数组c中,由相同值组成的最大子数组的长度。 例: 输入: 4 1 2 2 3 1 2 3 4 5 6 2 1 2 2 1 5 1 2 2 2 2 2 1 1 1 1 输出: 2 1 2 5 注意: - 在第一个测试用例中,我们只能形成c=[2,2],因此答案是2。 - 在第二个测试用例中,由于所有值都是不同的,答案必须是1。 - 在第三个测试用例中,我们可以形成的数组c有[1,2,1,2],[1,2,2,1],[2,1,1,2],[2,1,2,1]。当我们选择c=[1,2,2,1]时,答案是2。

加入题单

上一题 下一题 算法标签: