#P11004. [蓝桥杯 2024 省 Python B] 魔法巡游

[蓝桥杯 2024 省 Python B] 魔法巡游

题目描述

在蓝桥王国中,两位魔法使者,小蓝与小桥,肩负着维护时空秩序的使命。他们每人分别持有 NN 个符文石,这些石头被赋予了强大的力量,每一块上都刻 有一个介于 1110910^9 之间的数字符号。小蓝的符文石集合标记为 s1,s2,,sNs_1, s_2, \cdots , s_N,小桥的则为 t1,t2,,tNt_1, t_2, \cdots , t_N

两位魔法使者的任务是通过使用符文石,在各个时空结点间巡游。每次巡游遵循这样一条法则:当小蓝使用了符文石 sis_i 到达新的结点后,小桥必须选用一个序号更大的符文石(即某个 tjt_j 满足 j>ij > i)前往下一个结点。同理,小桥抵达之后,小蓝需要选择一个序号 k>jk > j 的符文石 sks_k 继续他们的巡游。

为了成功地穿梭时空,两个连续使用的符文石上的数字符号必须有共鸣,这种共鸣只有当数字符号中至少包含一个特定的元素——星火(数字 00)、水波 (数字 22)或者风语(数字 44)时,才会发生。例如,符号序列 126,552,24,4126, 552, 24, 4 中的每对连续符文都包含了至少一个共鸣元素,则它们是一系列成功的巡游;而如果是 15,51,515, 51, 5,则不成立,因为它们之间的共鸣元素不包含星火、水波或风语 中的任意一个。

小蓝总是先启程,使用他的符文石开启巡游。

你的任务是计算这对魔法使者能够执行的最长时空巡游序列的长度。这样 的序列形式为 si1,ti2,si3,ti4,s_{i_1}, t_{i_2}, s_{i_3}, t_{i_4}, \cdots,其中序列索引满足 i1<i2<i3<i4<i_1 < i_2 < i_3 < i_4 < \cdots,并且序列中每一对相邻的符文石都至少包含一个共鸣元素。

输入格式

输入的第一行包含一个整数 NN,表示每位魔法使者持有的符文石数量。

第二行包含 NN 个整数 s1,s2,,sNs_1, s_2, \cdots , s_N,相邻整数之间使用一个空格分隔,表示小蓝的符文石上刻有的数字符号。

第三行包含 NN 个整数 t1,t2,,tNt_1, t_2, \cdots , t_N ,相邻整数之间使用一个空格分隔,表示小桥的符文石上刻有的数字符号。

输出格式

输出一行包含一个整数,表示小蓝和小桥在遵守所有规则的情况下,最多能进行多少次时空巡游。

5
126 393 581 42 44
204 990 240 46 52

4

提示

对于 30%30\% 的评测用例,1N103,1si,ti1051 \le N \le 10^3,1 \le s_i , t_i \le 10^5

对于所有评测用例,1N105,1si,ti1091 \le N \le 10^5,1 ≤ s_i , t_i \le 10^9

样例解释

这里,数字 22 作为共鸣元素连接了 s1s_1t3t_3s4s_4t5t_5,数字 2244 作为共鸣元素 连接了 t3t_3s4s_4