题目描述
现给你一个长度为 n 的序列 a1,⋯,an 和 m 个互不相同的整数 b1,⋯,bm。你需要按照这 m 个数对序列 a 进行狠狠地切割。
具体的,对于一个数字 i∈[1,n],如果存在一个整数 j∈[1,m],使得 ai=bj,则将位置 i 称为一个切割点。对序列 a 中的每一个切割点,我们在这个位置进行一次狠狠地切割。方法是,将该位置的数字去除,然后在这个位置将其左右的序列/片段一分两半。
如果对狠狠地切割的定义有疑问,可以参照「样例 #1」及「样例解释 #1」进行理解。
你需要计算,在进行了所有可能的狠狠地切割后,序列被切割为了多少片段。
特别的,如果在切割后,某一段内没有数组,那这一段不可被叫做片段。同样的,如果 1 或 n 为切割点,其与开头和结尾之间也不存在片段。
如果对片段的概念有疑问,可以参照「样例 #2」及「样例解释 #2」进行理解。
输入格式
第一行为两个整数,依次表示序列 a 的长度 n 和序列 b 的长度 m。
第二行有 n 个整数,第 i 个整数表示 ai。
第三行有 m 个整数,第 i 个整数表示 bi。
输出格式
输出一个整数,代表狠狠地切割后的片段的个数。
提示
样例 1 解释
在狠狠地切割前,序列 a 如下所示:
343526
容易知道,第二个位置和第四个位置为切割点,我们使用 |
对其进行替换,代表去除工作:
3∣3∣26
我们将片段进行简单的标记:
3片段 1∣3片段 2∣26片段 3共计 3 个片段。
样例 2 解释
以下我们展示去除之后的序列:
∣4∣∣2∣
我们将片段进行简单的标记:
0这个不是片段∣4片段 1∣0这个不是片段∣2片段 2∣0这个不是片段共计 2 个片段。
数据规模与约定
- 对于 20% 的数据,保证 n,m≤10。
- 对于 70% 的数据,保证 n,m≤5×103。
- 对于 100% 的数据,保证 1≤n,m≤5×105,1≤ai,bi≤5×106。
提示
本题输入规模较大,建议考虑使用较快的读入读出方式。