P12774 [POI 2018/2019 R1] 一对项链 Pair of necklaces
题目背景
翻译来自于 [LibreOJ](https://loj.ac/p/4920)。
题目描述
**题目译自 [XXVI Olimpiada Informatyczna – I etap](https://sio2.mimuw.edu.pl/c/oi26-1/dashboard/) [Para naszyjników](https://sio2.mimuw.edu.pl/c/oi26-1/p/par/)**
Bajtazar 最近在字节城开了家珠宝店。他刚接到一个特别的订单:一位客户给了他两条由各种宝石串成的链子,要求打造一对项链。客户提出了几个条件:
- 两条项链长度必须完全相同;
- 一条来自第一条链子,另一条来自第二条;
- 每条项链必须是从链子上连续的一段;
- 第一条项链的宝石总价值与第二条的宝石总价值必须有相同的奇偶性;
- 在所有可能的项链中,挑出最长的。
这种要求也只有在字节城才能见到!
请你帮 Bajtazar 完成这个订单,写一个程序,找出给定链子中最长可能的项链长度。
输入格式
输入的第一行是一个自然数 $q$ $(1 \leq q \leq 20000)$,表示测试数据组数。接下来是每组测试数据的描述。
每个测试数据占三行:
- 第一行包含两个整数 $n$ 和 $m$ $(1 \leq n, m \leq 100000)$,表示第一条和第二条链子的宝石数量;
- 第二行是 $n$ 个整数(范围 $0$ 到 $10^{9}$),表示第一条链子上各宝石的价值;
- 第三行是 $m$ 个整数(范围 $0$ 到 $10^{9}$),表示第二条链子上各宝石的价值。
每个测试中,所有测试数据的 $n$ 和 $m$ 之和不超过 $20000000$。
输出格式
对于每组测试数据,按输入顺序输出一行,包含一个整数,表示满足客户要求的最长项链长度。
说明/提示
**样例 1 解释**
最长的项链由 3 个宝石组成。例如,可以从第一条链子取 $2, 3, 4$(总价值 $9$,奇数),从第二条链子取 $3, 1, 3$(总价值 $7$,奇数)。
**附加样例**
1. $q=1, n=m=10$,第一条链子宝石价值全是 $1$,第二条全是 $0$;
2. $q=1, n=m=1000$,第一条链子宝石价值按 $1, 0, 3, 5, 2, 1$ 循环,第二条全是 $2$;
3. $q=1, n=100000, m=99999$,第一条链子全是 $100$,第二条混入一个 $99$。
详细子任务附加限制及分值如下表所示。
| 子任务 | 附加限制 | 分值 |
| :---: | :--: | :---: |
| $1$ | $n, m \leq 1000$,每个测试点最有 $10$ 个 $n, m > 100$ 的数据 | $15$ |
| $2$ | $n \leq 1000$,每个测试点最多有 $30$ 个 $n > 100$ 的数据 | $10$ |
| $3$ | 宝石价值随机生成 | $10$ |
| $4$ | $n = m$ | $15$ |
| $5$ | 无附加限制 | $50$ |