아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Classic Quotation

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

요약
문자열 S와 T, 그리고 질의 (L, R)가 주어질 때, L부터 R 사이를 포함하는 임의의 부분 문자열을 지운 뒤 T가 나타나는 횟수의 기댓값에 선택 가짓수를 곱해 구한다.
난이도

어려움10점 중 8점

유형
문자열 매칭, 누적 합, 조합론, 수학
정답자
아직 제출이 없습니다

문제

온라인 채팅을 하다 보면 누군가 한 말을 저장해 그의 명언을 만들 수 있다. Little Q도 그렇게 한다. 게다가 그는 원래 단어까지 바꿀 수 있다. 형식적으로, 누군가 길이 nn인 문자열 SS를 말했다고 하자. Little Q는 SS의 연속 부분 문자열(비어 있을 수도 있음)을 하나 골라 지우고, 남은 두 부분을 이어 붙여 새 문자열 S′S'을 얻는다. 예를 들어 문자열 "I am not SB"에서 "not "를 지우면 새 문자열 S′S'은 "I am SB"가 된다.

이런 일을 여러 번 한 끝에 Little Q는 문자열 TT가 S′S'의 연속 부분 문자열로 매우 자주 나타난다는 것을 알게 되었다.

이제 문자열 SS와 TT가 주어지고 Little Q에게 kk개의 질의가 있다. 각 질의는 다음과 같은 형식이다. LL과 RR이 주어지면 Little Q는 어떤 부분 문자열을 지워 남은 두 부분이 S[1..i]S[1..i]와 S[j..n]S[j..n]이 되도록 한다. 여기서 정수 쌍 (i,j)(i, j)는 1≤i≤L1 \leq i \leq L이고 R≤j≤nR \leq j \leq n인 모든 쌍 중에서 같은 확률로 선택된다. 결과 문자열에서 TT가 나타나는 횟수의 기댓값 EE를 구하고 E⋅L⋅(n−R+1)E \cdot L \cdot (n - R + 1)의 값을 출력하라.

TT가 겹쳐서 나타나는 경우도 모두 세야 한다. 질의들은 서로 독립적이다. 문자열 SS는 실제로 S′S'으로 변하지 않으며 모든 질의에서 같다.

입력

입력의 첫 줄에는 SS의 길이, TT의 길이, 질의의 수를 나타내는 세 정수 nn, mm, kk가 주어진다(1≤n≤5⋅1041 \leq n \leq 5 \cdot 10^4, 1≤m≤1001 \le m \leq 100, 1≤k≤5⋅1041 \le k \le 5 \cdot 10^4).

다음 줄에는 nn개의 소문자 영어 알파벳으로 이루어진 문자열 SS가 주어진다. 그다음 줄에는 mm개의 소문자 영어 알파벳으로 이루어진 문자열 TT가 주어진다. 남은 kk개의 줄에는 각각 두 정수 LL과 RR로 이루어진 질의가 주어진다(1≤L<R≤n1 \leq L < R \leq n).

출력

각 질의마다 질의의 답을 나타내는 정수 하나를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    8 5 4
    iamnotsb
    iamsb
    4 7
    3 7
    3 8
    2 7
    
    예상 출력
    1
    1
    0
    0