#P3881. 最长公共上升子序列
最长公共上升子序列
题目描述
对于序列 ,如果对于任意的 ,都有 ,则称之为上升的。
对于序列 和 ,如果存在一组下标 使得 ,则称序列 为 的子序列。换句话讲,可以通过删除序列 中的一些项得到 。
现在给定两个整数序列,编写程序找到它们的最长公共上升子序列。即最大长度的、两个序列公共的、上升子序列。
输入文件
第一行一个整数 ,表示第一个序列的长度。
第二行 个整数 ,表示第一个序列中的元素,整数之间用空格分隔。
第三行一个整数 ,表示第二个序列的长度。
第四行 个整数 ,表示第一个序列中的元素,整数之间用空格分隔。
输出文件
第一行一个整数 ,表示最长公共上升子序列的长度。
第二行 个整数,表示最长公共上升子序列,如果有多个序列,输出下标字典序最小的一个。
7
2 3 1 6 5 4 6
4
1 3 5 6
3
3 5 6
5
1 2 0 2 1
3
1 0 1
2
0 1
提示
样例 3 见附加文件。
对于 的数据,。
对于 的数据,,。
相关
在下列比赛中: