[ONTAK2015]Badania naukowe

时间限制:3s      空间限制:256MB

题目描述

给定三个数字串A,B,C,请找到一个A,B的最长公共子序列,满足C是该子序列的子串。


输入格式

第一行包含一个正整数n(1<=n<=3000),表示A串的长度。
第二行包含n个正整数,其中第i个数表示A[i](1<=A[i]<=1000)。
第三行包含一个正整数m(1<=m<=3000),表示B串的长度。
第四行包含m个正整数,其中第i个数表示B[i](1<=B[i]<=1000)。
第五行包含一个整数k(0<=k<=3000),表示C串的长度。
第六行包含k个正整数,其中第i个数表示C[i](1<=C[i]<=1000)。


输出格式

输出一个整数,即满足条件的最长公共子序列的长度,如果无解输出-1。特别的,如果k为0且无解,请输出0。


样例输入

7
1 2 2 3 1 1 2
6
1 2 1 3 1 2
2
3 2

样例输出

4

提示

找到的最长个公共子序列为(1,2,3,2)。


题目来源

By Claris

Menuappsclose