시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 3 MB | 184 | 90 | 76 | 55.474% |
Byteman은 그가 좋아하는 텍스트 에디터를 Byephone(이 이름은 단어 byte와 phone에서 따온 이름이다.) 이라는 새로운 핸드폰에 포팅하고 있다.
그 에디터의 특징 중 하나는 두 문서를 한 줄씩 비교해줄 수 있다는 것이다.
그 비교는 두 문자열의 최장 공통 부분 수열 (Longest Common Subsequence)을 계산하는 알고리즘을 기반으로 하고 있다.
Byteman은 이내 그 핸드폰이 그가 사용하는 알고리즘을 돌릴 만큼 충분한 메모리가 가지고 있지 않다는 것을 깨달았고 당신에게 도움을 요청했다.
3MB의 메모리만을 사용해서 입력으로 주어지는 두 문자열의 최장 공통 부분 수열을 구하는 프로그램을 작성해라.
표준 입력의 첫 번째 줄에는 두 개의 정수 n1 과 n2 (1 ≤ n1, n2 ≤ 10 000)가 주어지며, 이는 두 문자열의 길이를 의미한다.
두 번째 줄과 세 번째 줄에는 각각 길이가 n1,n2인 문자열이 주어지며, 두 문자열은 영어 알파벳 소문자로만 이루어져 있다.
표준 출력으로 두 줄을 출력해야한다.
첫 번째 줄에는 두 문자열의 최장 공통 부분 수열의 길이 K를 출력해야한다.
두 번째 줄에는 길이가 K인 최장 공통 부분 수열을 출력해야한다.
만약 답이 여러개 있을 경우, 그 중에 하나만 출력한다.
5 6 abcad dacbda
3 acd
Camp > Czech, Polish and Slovak Preparation Camp > CPSPC 2010 4-1번