길이가 인 수열 와 길이가 인 수열 가 주어진다. 두 수열 전체를 봤을 때 동일한 값은 최대 번 등장한다.
수열 의 번째 값에서 시작하고 길이가 인 연속인 부분 수열을 뽑아냈다고 하자. 또, 수열 의 번째 값에서 시작하고 길이가 인 연속인 부분 수열을 뽑아냈다고 하자. 이 두 부분 수열에서, 동일한 위치에 동일한 값이 등장하는 횟수를 라고 부르자. ( )
모든 가능한 의 값 중 최댓값을 구하는 프로그램을 작성하라.
첫 줄에 수열의 길이를 나타내는 두 정수 과 이 공백으로 구분되어 주어진다. ()
그다음 줄에 수열 의 원소들의 값을 나타내는 개의 정수가 공백으로 구분되어 순서대로 주어진다.
그다음 줄에 수열 의 원소들의 값을 나타내는 개의 정수가 공백으로 구분되어 순서대로 주어진다.
모든 원소의 값은 이상 이하이며, 동일한 값은 와 를 합쳐 최대 번 등장한다.
첫 줄에 의 최댓값을 출력한다.
5 7 1 2 3 4 1 2 4 4 1 5 3 2
3
, , 인 경우를 보자. 에서 뽑은 부분 수열은 , 에서 뽑은 부분 수열은 이다. 따라서, 동일한 자리에 동일한 값이 등장하는 경우가 , , 로 총 번이다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 15점
종류 2: 19점
종류 3: 28점
종류 4: 38점
모든 입력 케이스가 주어짐.