#B3691. 狠狠地切割(Easy Version)
狠狠地切割(Easy Version)
狠狠地切割(Easy Version)
来源:洛谷 B3691([语言月赛202212] 狠狠地切割(Easy Version))
题目描述
现给你一个长度为 的序列 和 个互不相同的整数 。你需要按照这 个数对序列 进行狠狠地切割。
具体的,对于一个数字 ,如果存在一个整数 ,使得 ,则将位置 称为一个切割点。对序列 中的每一个切割点,我们在这个位置进行一次狠狠地切割。方法是,将该位置的数字去除,然后在这个位置将其左右的序列/片段一分两半。
如果对狠狠地切割的定义有疑问,可以参照「样例 #1」及「样例解释 #1」进行理解。
你需要计算,在进行了所有可能的狠狠地切割后,序列被切割为了多少片段。
特别的,如果在切割后,某一段内没有数组,那这一段不可被叫做片段。同样的,如果 或 为切割点,其与开头和结尾之间也不存在片段。
输入格式
第一行为两个整数,依次表示序列 的长度 和序列 的长度 。
第二行有 个整数,第 个整数表示 。
第三行有 个整数,第 个整数表示 。
输出格式
输出一个整数,代表狠狠地切割后的片段的个数。
样例 #1
样例输入 #1
6 2
3 4 3 5 2 6
5 4
样例输出 #1
3
样例 #2
样例输入 #2
6 3
3 4 3 5 2 6
3 5 6
样例输出 #2
2
提示
样例 1 解释
在狠狠地切割前,序列 如下所示:
3 4 3 5 2 6
容易知道,第二个位置和第四个位置为切割点,我们使用 | 对其进行替换,代表去除工作:
3 | 3 | 2 6
我们将片段进行简单的标记:
片段1: 3 | 片段2: 3 | 片段3: 2 6
共计 个片段。
样例 2 解释
以下我们展示去除之后的序列:
| 4 | | 2 |
其中第 1、3、4、6 位为切割点(空片段不算片段),剩余片段为 4 和 2,共计 个片段。
数据规模与约定
- 对于 的数据,保证 ;
- 对于 的数据,保证 ;
- 对于 的数据,保证 ,。
本题输入规模较大,建议考虑使用较快的读入读出方式。