测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A71973. 子序列(3)

编程题 基础

题目描述

给定两个整数序列 AB,长度分别为 nm

现在需要在序列 A 中选取一个连续子数组

A_l, A_{l+1}, \dots, A_r \quad (1 \le l \le r \le n)

要求该连续子数组满足:

  • 序列 B 是该子数组的一个子序列(即:将该子数组中删除若干元素,但不改变顺序,可以得到序列 B)。

请你在所有满足条件的连续子数组中,找出长度最短的一个,并输出其长度。

如果不存在这样的子数组,请输出 -1

输入格式

输入共三行:

第一行包含两个整数 n, m

第二行包含 n 个整数,表示序列 A

第三行包含 m 个整数,表示序列 B

输出格式

输出一个整数,表示满足条件的最短连续子数组长度;若不存在,则输出 -1

输入输出样例

输入 #1
8 3
1 2 3 4 2 3 5 6
2 3 5
输出 #1
3
输入 #2
6 3
1 2 3 4 5 6
3 5 7
输出 #2
-1
输入 #3
10 3
1 2 3 4 5 3 4 3 5 2
3 4 2
输出 #3
5

说明/提示

数据范围

对于 100\% 的数据,满足 1 \le n, m \le 10001 \le A_i, B_i \le 10^9