두 문자열 와 의 편집 거리는, 문자열 를 로 바꾸기 위해 적용해야 하는 편집 작업의 최소 횟수로 정의된다. 가능한 편집 작업은 아래의 가지가 있다:
두 문자열 aba와 abba의 경우,
aba의 첫 글자와 두 번째 글자 사이에 b를 삽입하면
abba가 되므로 편집 거리는 이다.
또, 두 문자열 aba와 acaa의 경우,
aba의 문자 b를 c로 변경하고,
마지막 문자 a 뒤에 새로운 문자 a를 삽입하면
acaa가 되므로 편집 거리는 가 된다.
임의의 문자열 , 에 대해, 와 의 편집 거리와 와 의 편집 거리는 같음에 유의하라.
주어진 문자열 와 에 대해서, 의 모든 연속이고 길이가 이상인 부분문자열과 의 편집 거리들 중, 그 값이 각각 인 경우의 수를 구하는 프로그램을 작성하라.
첫 줄에 문자열 의 길이 , 문자열 의 길이 , 편집 거리의 제한을 나타내는 정수 가 공백으로 구분되어 주어진다. ( ; 이 문제는 입력 제한이 일반적이지 않으므로 주의하라; 아래 채점 방식 부분에 추가적인 정보가 있다)
그다음 줄에 길이 의 문자열 가 주어진다.
그다음 줄에 길이 의 문자열 가 주어진다.
주어지는 문자열 와 는 모두 영어 알파벳 소문자로만 구성되어 있다.
첫 줄부터 개의 줄에 걸쳐 정답을 출력한다. 번째 줄에는 와의 편집 거리가 정확하게 인 경우의 수를 출력한다.
7 3 1 abbabaa aba
1 10
편집 거리가 인 경우는
의 번째 글자에서 시작하는 부분문자열 aba 개가 있다.
편집 거리가 인 경우는
의 번째 글자에서 시작하는 부분문자열 ab, abb, abba가 있고,
번째 글자에서 시작하는 bba,
번째 글자에서 시작하는 ba, baba,
번째 글자에서 시작하는 ab, abaa,
번째 글자에서 시작하는 ba,
마지막으로, 번째 글자에서 시작하는 aa가 있어,
모두 개이다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다. 입력 케이스 종류들 중 하나가 다른 모든 종류를 포함하는 경우가 없음에 주의하라.
종류 1: 8점
종류 2: 12점
종류 3: 35점
종류 4: 11점
종류 5: 34점