문자열의 분할

A에서 겹치지 않는 K개의 부분 문자열을 골라 B에서도 같은 순서로 겹치지 않게 나타나도록 할 때, 길이 합의 최댓값을 구한다.

보통7동적 계획법문자열투 포인터아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

병찬이는 문자열 A와 B를 가지고 있다. 두 문자열이 서로 닮았다고 생각한 병찬이는 A에서 서로 겹치지 않는 부분문자열을 K개 골라, A에 나오는 순서대로 p1,p2,,pKp_1, p_2, \ldots, p_K라고 적고 이들을 모은 것을 P라고 불렀다. 이 부분문자열은 B에서도 서로 겹치지 않으면서 같은 순서로 나타나야 한다.

P가 만족하는 조건은 다음과 같다.

  1. P의 원소는 정확히 K개이고, 각 문자열의 길이는 1 이상이다.
  2. 문자열 A를 a1p1a2p2aKpKaK+1a_1 p_1 a_2 p_2 \cdots a_K p_K a_{K+1} 꼴로 쓸 수 있다. 여기서 a1,a2,,aK+1a_1, a_2, \ldots, a_{K+1}은 각각 임의의 문자열이고, 길이가 0이어도 된다.
  3. 문자열 B를 b1p1b2p2bKpKbK+1b_1 p_1 b_2 p_2 \cdots b_K p_K b_{K+1} 꼴로 쓸 수 있다. 여기서 b1,b2,,bK+1b_1, b_2, \ldots, b_{K+1}은 각각 임의의 문자열이고, 길이가 0이어도 된다.
  4. P에 속한 모든 문자열의 길이의 합을 PL이라고 한다.

병찬이는 PL의 최댓값을 알고 싶다. 예를 들어 A가 "bbaaababb", B가 "abbbabbaaaba", K가 4이면 PL을 가장 크게 만드는 P는 {"bba", "aa", "b", "a"}이고, 이때 PL은 7이다.

입력

첫째 줄에 정수 N, M, K가 공백으로 구분되어 주어진다 (1N,M10001 \le N, M \le 1000, 1K101 \le K \le 10). N은 문자열 A의 길이, M은 문자열 B의 길이, K는 P에 속한 문자열의 개수이다. 둘째 줄에 문자열 A가, 셋째 줄에 문자열 B가 주어진다. 두 문자열은 모두 영어 소문자 26가지로만 이루어진다.

출력

첫째 줄에 PL의 최댓값을 출력한다. 조건을 만족하는 P가 하나도 없는 입력은 주어지지 않는다.