Description
有一个a序列,其中的元素为 a1,a2,... an,如果 ai< aj (1 ≤i < j ≤ n)时,我们称为序列是上升的。
若给定序列X=<x1, x2, …, xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格上升的下标序列<i1, i2, …, ik>, 使得对于所有 j=1,2,…,k 有: Xij = Zj, 则这两个序列是存在公共子序列的。
给你两个整数序列。你要找到它们的最长公共上升子序列。
Input
第一行为一个整数 n,表示第一个序列的长度(n < 500)。
接下来一行为n个整数。(整数范围在 0 ~ 109)
第三行为一个整数m,表示第二个序列的长度(m < 500)。
接下来一行为m个整数。(整数范围在 0 ~ 109)
Output
输出一个整数,表示两个序列的最长公共上升子序列
样例输入1:
7
2 3 1 6 5 4 6
4
1 3 5 6
样例输入2:
5
1 2 0 2 1
3
1 0 1