Classic Quotation
시간 제한1초메모리 제한512 MB
문자열 S와 T, 그리고 질의 (L, R)가 주어질 때, L부터 R 사이를 포함하는 임의의 부분 문자열을 지운 뒤 T가 나타나는 횟수의 기댓값에 선택 가짓수를 곱해 구한다.
문제
온라인 채팅을 하다 보면 누군가 한 말을 저장해 그의 명언을 만들 수 있다. Little Q도 그렇게 한다. 게다가 그는 원래 단어까지 바꿀 수 있다. 형식적으로, 누군가 길이 인 문자열 를 말했다고 하자. Little Q는 의 연속 부분 문자열(비어 있을 수도 있음)을 하나 골라 지우고, 남은 두 부분을 이어 붙여 새 문자열 을 얻는다. 예를 들어 문자열 "I am not SB"에서 "not "를 지우면 새 문자열 은 "I am SB"가 된다.
이런 일을 여러 번 한 끝에 Little Q는 문자열 가 의 연속 부분 문자열로 매우 자주 나타난다는 것을 알게 되었다.
이제 문자열 와 가 주어지고 Little Q에게 개의 질의가 있다. 각 질의는 다음과 같은 형식이다. 과 이 주어지면 Little Q는 어떤 부분 문자열을 지워 남은 두 부분이 와 이 되도록 한다. 여기서 정수 쌍 는 이고 인 모든 쌍 중에서 같은 확률로 선택된다. 결과 문자열에서 가 나타나는 횟수의 기댓값 를 구하고 의 값을 출력하라.
가 겹쳐서 나타나는 경우도 모두 세야 한다. 질의들은 서로 독립적이다. 문자열 는 실제로 으로 변하지 않으며 모든 질의에서 같다.
입력
입력의 첫 줄에는 의 길이, 의 길이, 질의의 수를 나타내는 세 정수 , , 가 주어진다(, , ).
다음 줄에는 개의 소문자 영어 알파벳으로 이루어진 문자열 가 주어진다. 그다음 줄에는 개의 소문자 영어 알파벳으로 이루어진 문자열 가 주어진다. 남은 개의 줄에는 각각 두 정수 과 로 이루어진 질의가 주어진다().
출력
각 질의마다 질의의 답을 나타내는 정수 하나를 한 줄에 출력한다.