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

27955번 - 외계 분자 서브태스크

시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 1024 MB75231935.185%

문제

41기는 R&E로 '외계 생명체의 유전 정보 채취해 오기'라는 아주 도전적인 주제를 잡았다. 정말 터무니없고 실현 불가능한 주제처럼 들리겠지만, 놀랍게도 41기는 단 한 학기 만에 성공적으로 외계 분자를 추출해 올 수 있었다! 심지어 이 분자는 마치 DNA의 염기 서열과 같이 일정한 유전 단위들이 일렬로 나란히 줄지어 결합된 형태였다. 즉, 외계 생명체가 실존한다는 아주 중요한 단서를 채취한 것이다!

41기는 외계 분자를 잘 분석하기 위하여 각 분자마다 고유의 문자열을 부여하였다. 외계 분자는 총 26가지의 유전 단위의 조합으로 이루어져 있었다. 41기는 이 유전 단위를 알파벳의 A부터 Z까지 대응시켜 ABRTTWYS$\cdots$와 같은 문자열로 이 외계 분자를 표현했다.

그런데 아주 심각한 문제가 생겼다. 이 외계 분자는 지구의 대기와 결합하면 심각한 변형이 일어난다. 시간이 지날수록 이 분자들은 오염되어만 갔고, 결국 한참 후에는 처음에 채취한 것과는 완전히 다른 분자 구조를 띠었다. 41기는 이 귀중한 자료를 절대로 놓치고 싶지 않았다. 그래서 다음과 같은 방법을 이용했다.

41기는 외계 분자 역시 DNA처럼 상보적인 분자 쌍이 존재한다는 특성을 관찰하였고, 이를 기반으로 외계 분자에 특정 분자 서열이 존재하는지를 판단할 수 있었다. 이를 바탕으로 41기는 해당 시각에 외계 분자에 특정 분자 서열들의 존재 여부를 구하고 이를 이용해 대략적인 처음 형태를 복원하고자 하였다.

당신은 신이다. 당신은 미래에 이 DNA가 어떻게 변할 것인지를 모두 알고 있다. 이를 바탕으로 41기가 특정 시각에 특정 분자 서열들을 관찰할 수 있을지 판단해 보자!

입력

첫 번째 줄에 문자열 $S$가 주어진다. 이는 외계 분자의 처음 모습을 나타낸다.

두 번째 줄에 41기가 확인할 문자열의 개수 $N$이 주어진다.

이후 $N$개의 줄에 걸쳐 $N$개의 문자열 $T_1,T_2,\cdots ,T_N$이 주어진다. 참고로 $T_i$가 $S$보다 길 수도 있다.

그 다음 줄에 쿼리의 개수 $Q$가 주어진다. 그 다음 $Q$개의 줄에 걸쳐 아래의 질의가 주어진다.

  • 1ドル$ $l$ $r$ $c$ $-$ 외계 분자의 $l$번째 문자부터 $r$번째 문자까지 모두 문자 $c$로 바뀐다.
  • 2ドル$ $l$ $r$ $-$ 외계 분자의 $l$번째 문자부터 $r$번째 문자까지 고려한 문자열, 즉 부분 문자열 $S[l\cdots r]$이 $T_1,T_2,\cdots ,T_N$ 중 하나와 일치한다면 1, 그렇지 않으면 0을 출력한다.

출력

2번 쿼리에 대한 답을 한 줄에 하나씩 출력한다.

2번 쿼리는 하나 이상 주어진다.

제한

  • 1ドル\leq N\leq 1,000,000$
  • 1ドル\leq Q,|S|\leq 250,000$
  • 1ドル\leq|T_i|\leq 1,000,000$
  • 1ドル\leq\displaystyle\sum_{i=1}^{N}|T_i|\leq 1,000,000$
  • 1ドル\leq l\leq r\leq |S|$
  • $S,T_i,c$는 모두 알파벳 대문자로 이루어져 있다. (1ドル\leq i\leq N$)

서브태스크

번호배점제한
110

1ドル \leq Q \leq 20$

230

1번 질의가 주어지지 않음

330

1번 질의에서 $l = r$

430

추가 제한 조건이 없다.

예제 입력 1

ABABABAB
5
AB
ABCD
EE
BCDE
BABA
10
2 1 2
2 2 3
1 3 3 B
2 2 5
1 7 8 E
2 7 8
1 3 5 C
1 4 8 D
2 1 4
2 2 5

예제 출력 1

1
0
0
1
1
0

매 쿼리마다 문자열은 다음과 같이 변화한다.

  • 첫 번째 쿼리: ABABABAB에서 $S$[1ドル\cdots2$]인 AB는 $T_1$과 일치한다.
  • 두 번째 쿼리: ABABABAB에서 $S$[2ドル\cdots3$]인 BA와 일치하는 문자열은 존재하지 않는다.
  • 세 번째 쿼리: ABBBABAB (3번째 문자부터 3번째 문자까지 B로 바뀐다.)
  • 네 번째 쿼리: ABBBABAB에서 $S$[2ドル\cdots5$]인 BBBA와 일치하는 문자열은 존재하지 않는다.
  • 다섯 번째 쿼리: ABBBABEE (7번째 문자부터 8번째 문자까지 E로 바뀐다.)
  • 여섯 번째 쿼리: ABBBABEE에서 $S$[7ドル\cdots8$]인 EE는 $T_3$과 일치한다.
  • 일곱 번째 쿼리: ABCCCBEE (3번째 문자부터 5번째 문자까지 C로 바뀐다.)
  • 여덟 번째 쿼리: ABCDDDDD (4번째 문자부터 8번째 문자까지 D로 바뀐다.)
  • 아홉 번째 쿼리: ABCDDDDD에서 $S$[1ドル\cdots4$]인 ABCD는 $T_2$과 일치한다.
  • 열 번째 쿼리: ABCDDDDD에서 $S$[2ドル\cdots5$]인 BCDD와 일치하는 문자열은 존재하지 않는다.

힌트

길이가 $l$인 문자열 $S$와 1ドル \leq i \leq j \leq l$인 두 정수 $i$와 $j$에 대해, $S$[$i\cdots j$]는 $S$의 $i$번째 문자에서부터 $j$번째 문자까지를 모두 순서대로 포함하는 문자열이며, 이러한 문자열들을 문자열 $S$의 부분 문자열이라고 한다.

예를 들어 $S$가 ABCDABA이라면, $S$[1ドル\cdots5$]는 ABCDA이고, $S$[3ドル\cdots7$]은 CDABA이다. 따라서 ABCDA과 CDABA은 문자열 ABCDABA의 부분 문자열이다. 하지만 AAAA은 문자열 ABCDABA의 부분 문자열이 아니다.

(출처: 가장 긴 공통 괄호 문자열, koi 2021)

출처

School > 경기과학고등학교 > IamCoder Qualification Test > 2023 IamCoder Qualification Test E번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
  • 이 문제의 채점 우선 순위는 2이다.
(追記) (追記ここまで)

출처

대학교 대회

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

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