문자열 T=t1t2…tm이 문자열 S=s1s2…sn의 부분 문자열이라는 말은, si+1si+2…si+m=T를 만족하는 0≤i≤n−m이 있다는 뜻이다. 부분 문자열은 S에서 연속한 구간을 그대로 잘라낸 것이다.
두 문자열 A와 B가 주어진다. A의 부분 문자열이면서 B의 부분 문자열이기도 한 문자열 중 가장 긴 것의 길이와, 그 길이를 가지는 공통 부분 문자열 중 사전순으로 가장 앞서는 것을 구하는 프로그램을 작성하시오.
첫째 줄에 문자열 A가, 둘째 줄에 문자열 B가 주어진다. 두 문자열은 알파벳 소문자로만 이루어져 있고, 두 문자열 길이의 합은 200,000을 넘지 않는다.
첫째 줄에 두 문자열의 최장 공통 부분 문자열의 길이를 출력한다.
그 길이가 0보다 크면 둘째 줄에 같은 길이의 공통 부분 문자열 중 사전순으로 가장 앞서는 것을 출력한다. 공통 부분 문자열이 없으면 첫째 줄에 0만 출력하고 둘째 줄은 출력하지 않는다.