Logo
(追記) (追記ここまで)

13203번 - 읽어내기

시간 제한메모리 제한제출정답맞힌 사람정답 비율
4 초 256 MB186453023.438%

문제

고대 유적을 발굴하던 성원이는 커다란 비석을 찾아내었고, 학계에 보고하기 위해 그 비석에 적힌 글을 해독하고 있다. 하지만 이 비석은 오랜 세월을 거치며 글자들이 지워져 잘 보이지 않게 되었다.

이 비석이 만들어질 당시의 사람들은 비석에 왕의 이름을 써 놓는 것을 좋아했다. 비석의 글자들 중 일부 (연속하지 않아도 된다)를 골라 순서대로 조합하여 왕의 이름이 되는 경우의 수가 많을수록 더 좋아했다고 한다. 또 이 당시 사람들은 말을 길게 하는 것을 좋아하지 않아 왕의 이름은 항상 5글자 이내였다고 한다.

방사선 연대 측정을 통해 이 비석이 묻힐 당시의 왕의 이름을 알게 된 성원이는 이 비석에 왕의 이름을 읽어낼 수 있는 경우의 수가 몇 가지인지 알고 싶게 되었다. 그런데 비석의 글씨는 잘 보이지 않으므로 연구가 진행됨에 따라 비석의 일부의 해석이 달라질 수 있고, 그 때마다 이름을 읽어내는 경우의 수를 알고 싶어한다. 성원이를 도와 경우의 수를 계산하는 프로그램을 작성해 주자.

입력

첫 번째 줄에 테스트 케이스의 수 T 가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 비석의 글자 수 N(1 ≤ N ≤ 200, 000)과 왕의 이름의 길이 M(1 ≤ M ≤ 5), 그리고 비석의 해석이 바뀌는 횟수 Q(0 ≤ Q ≤ 100, 000)가 주어진다. 둘째 줄에는 비석에 적힌 글의 첫 번째 해석이 하나의 문자열로 주어진다. 이는 영어 알파벳 대문자로만 구성되어 있다. 셋째 줄에는 왕의 이름이 하나의 문자열로 주어지며, 마찬가지로 영어 알파벳 대문자로만 구성되어 있다. 넷째 줄부터 Q개의 줄에는 한 줄마다 두 개의 정수 Ai , Bi 와 문자열 Si 가 주어진다. (1 ≤ AiBi ≤ N, len(Si) = BiAi + 1) 이는 비석의 Ai 번째 문자부터 Bi 번째 문자까지의 해석이 Si 로 바뀐다는 뜻이다. Si 의 길이 총합은 2, 000, 000 이하이다.

출력

각 테스트 케이스마다, Q + 1개의 줄에 한 줄에 하나의 정수를 출력한다. i번째 줄에는 비석의 i번째 해석에서 왕의 이름을 읽을 수 있는 경우의 수를 출력한다. 답이 커질 수 있으므로 1, 000, 000, 007로 나눈 나머지를 출력한다.

제한

예제 입력 1

1
20 5 1
MIDASMIDASMIDASMIDAS
MIDAS
2 19 MMMIIIIDDDDAAAASSS

예제 출력 1

56
1024

힌트

출처

University > 서울대학교 > 서울대학교 프로그래밍 경시대회 > 2016 서울대학교 프로그래밍 경시대회 E번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /