같은 자리 같은 값

NYPC 2025 · Round 1

길이가 NN인 수열 AA와 길이가 MM인 수열 BB가 주어진다. 두 수열 전체를 봤을 때 동일한 값은 최대 33번 등장한다.

수열 AAii번째 값에서 시작하고 길이가 kk인 연속인 부분 수열을 뽑아냈다고 하자. 또, 수열 BBjj번째 값에서 시작하고 길이가 kk인 연속인 부분 수열을 뽑아냈다고 하자. 이 두 부분 수열에서, 동일한 위치에 동일한 값이 등장하는 횟수를 D(i,j,k)D(i, j, k)라고 부르자. (1iN;1 \le i \le N; 1jM;1 \le j \le M; 1kmin(Ni+1,Mj+1)1 \le k \le \min(N - i + 1, M - j + 1))

모든 가능한 D(i,j,k)D(i, j, k)의 값 중 최댓값을 구하는 프로그램을 작성하라.

입력 형식

첫 줄에 수열의 길이를 나타내는 두 정수 NNMM이 공백으로 구분되어 주어진다. (1N,M2000001 \le N, M \le 200\,000)

그다음 줄에 수열 AA의 원소들의 값을 나타내는 NN개의 정수가 공백으로 구분되어 순서대로 주어진다.

그다음 줄에 수열 BB의 원소들의 값을 나타내는 MM개의 정수가 공백으로 구분되어 순서대로 주어진다.

모든 원소의 값은 11 이상 10000001\,000\,000 이하이며, 동일한 값은 AABB를 합쳐 최대 33번 등장한다.

출력 형식

첫 줄에 D(i,j,k)D(i, j, k)의 최댓값을 출력한다.

예제

입력

5 7 1 2 3 4 1 2 4 4 1 5 3 2

출력

3

예제 설명

i=2i = 2, j=1j = 1, k=4k = 4인 경우를 보자. AA에서 뽑은 부분 수열은 [2,3,4,1][2, 3, 4, 1], BB에서 뽑은 부분 수열은 [2,4,4,1][2, 4, 4, 1]이다. 따라서, 동일한 자리에 동일한 값이 등장하는 경우가 22, 44, 11로 총 33번이다.

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 15

N,M100N, M \le 100

종류 2: 19

N,M300N, M \le 300

종류 3: 28

N,M3000N, M \le 3\,000

종류 4: 38

모든 입력 케이스가 주어짐.

해설