만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

탠덤 복사

시간 제한1초메모리 제한2048 MB

요약
두 문자열 s와 t가 주어질 때, 탠덤 복사로 만들 수 있는 s의 유효한 부분 문자열 개수를 구합니다.
난이도

보통10점 중 6점

유형
문자열, 동적 계획법, 문자열 매칭
정답자
아직 제출이 없습니다

문제

탠덤 복사는 DNA에서 연속된 뉴클레오티드 하나 이상을 골라, 그 복사본을 원래 부분 바로 뒤에 붙이는 연산이다. 예를 들어 ATCG에서 ATC를 탠덤 복사하면 ATCATCG가 된다. 여기에 다시 탠덤 복사를 적용하면 ATCATTCG가 된다. 다음은 ATCG에서 시작하는 과정이다. ATCG ⇒\Rightarrow ATCATCG ⇒\Rightarrow ATCATTCG ⇒\Rightarrow ATATCATTCG ⇒\Rightarrow ⋯\cdots

ATCG는 탠덤 복사로 이 모든 문자열을 만들 수 있다고 한다. 단계마다 복사할 부분을 다르게 고르면 서로 다른 문자열을 만들 수 있고, 단계를 충분히 반복하면 무한히 많은 문자열을 만들 수 있다.

더 긴 부분을 복사할수록 비용이 많이 든다. ATCG에서 ATC를 복사하는 것은 ATCATCG에서 T 한 글자를 복사하는 것보다 비싸다. 따라서 복사하는 부분의 길이가 비용을 결정한다.

한 글자는 복사하기 쉬우므로, 연구실은 연속한 두 뉴클레오티드가 같지 않은 문자열을 저장한다. 예를 들어 ATTTG는 ATG에서 T를 두 번 복사해서 만들 수 있으므로, 연구실은 ATTTG 대신 ATG를 저장한다.

입력

입력은 두 줄이다. 첫 줄은 원본 문자열 ss, 둘째 줄은 목표 문자열 tt이다. 두 문자열 모두 대문자 A부터 Z까지로 이루어지며, 1≤∣s∣,∣t∣≤2×1041 \le |s|, |t| \le 2 \times 10^4이다.

출력

유효한 ss의 부분 문자열의 개수를 한 줄에 출력한다.

예제4

  1. 예제 1

    입력
    ACGCG
    CCG
    
    예상 출력
    9
    
  2. 예제 2

    입력
    TATCGC
    TTCCG
    
    예상 출력
    6
    
  3. 예제 3

    입력
    ABCABC
    ABC
    
    예상 출력
    7
    
  4. 예제 4

    입력
    ABCABC
    ABCABC
    
    예상 출력
    1