최장 공통 부분 문자열

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

문자열 T=t1t2tmT = t_1 t_2 \dots t_m이 문자열 S=s1s2snS = s_1 s_2 \dots s_n의 부분 문자열이라는 말은, si+1si+2si+m=Ts_{i+1} s_{i+2} \dots s_{i+m} = T를 만족하는 0inm0 \le i \le n - m이 있다는 뜻이다. 부분 문자열은 SS에서 연속한 구간을 그대로 잘라낸 것이다.

두 문자열 AABB가 주어진다. AA의 부분 문자열이면서 BB의 부분 문자열이기도 한 문자열 중 가장 긴 것의 길이와, 그 길이를 가지는 공통 부분 문자열 중 사전순으로 가장 앞서는 것을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 문자열 AA가, 둘째 줄에 문자열 BB가 주어진다. 두 문자열은 알파벳 소문자로만 이루어져 있고, 두 문자열 길이의 합은 200,000을 넘지 않는다.

출력

첫째 줄에 두 문자열의 최장 공통 부분 문자열의 길이를 출력한다.

그 길이가 0보다 크면 둘째 줄에 같은 길이의 공통 부분 문자열 중 사전순으로 가장 앞서는 것을 출력한다. 공통 부분 문자열이 없으면 첫째 줄에 0만 출력하고 둘째 줄은 출력하지 않는다.