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

34978번 - 맞혀보세요~

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB122938875.214%

문제

짐비는 휴이 선배와 같이 규칙 맞히기 퀴즈를 하고 있었다. 규칙 맞히기 퀴즈란 질문자가 제시한 문자열이 답변자가 정한 모든 규칙을 만족한다면 yes, 아니라면 no를 답변하는 게임이다.

모든 규칙은 아래와 같은 형식을 가진다.

어떤 문자 $X$의 바로 뒤에는 허용된 문자 집합 $\{ Y_1, \cdots , Y_M \}$에 속하는 문자가 오거나, 아무것도 오지 않고 문자열이 끝나야 한다.

예를 들어 규칙이 "문자 a의 바로 뒤에는 집합 {b, c}에 속하는 문자가 오거나 아무것도 오지 않는다" 라면

  • abx: a의 바로 뒤에 b가 왔고, b는 허용된 집합에 속하므로 조건을 만족한다. 즉, 이 질문에 대한 답은 yes이다.
  • ba: a의 바로 뒤에 아무것도 오지 않았기 때문에 조건을 만족한다. 즉, 이 질문에 대한 답은 yes이다.
  • adx: a의 바로 뒤에 d가 왔고, d는 허용된 집합에 속하지 않으므로 조건을 만족하지 않는다. 즉, 이 질문에 대한 답은 no이다.

규칙이 주어지지 않은 문자 뒤에는 무엇이 오든 상관없다.

퀴즈는 짐비가 내고, 정답은 휴이 선배가 맞히고 있다. 휴이 선배는 제한 시간 안에 대답해야 하지만 전날에 메이플스토리를 너무 많이 한 탓에 머리가 돌아가지 않았고, 결국 여러분에게 도움을 청했다.

$N$개의 규칙들과 짐비의 새로운 질문 문자열 $S$가 주어진다. 이 질문이 모든 규칙을 만족하여 yes라고 대답해야 하는지, 아니면 no라고 대답해야 하는지 판단하는 프로그램을 작성하자.

입력

첫번째 줄에 규칙의 수 $N$이 주어진다. $(1 \leq N \leq 26)$

두번째 줄부터 $N$개의 줄에 걸쳐, 한 줄에 하나씩 규칙을 나타내는 $X, M, Y_1, \cdots,Y_M$ 이 공백으로 구분되어 입력으로 주어진다. 이는 영문 소문자 $X$ 의 바로 뒤에는 집합 $\{Y_1, \cdots, Y_M\}$에 속하는 영문 소문자가 오거나 아무것도 오지 않고 문자열이 끝나야 함을 의미한다. $(1 \leq M \leq 20)$

각 규칙에 대해 $X$는 모두 서로 다르며, 한 규칙 내의 $Y_1, \cdots ,Y_M$ 중 중복되는 영문 소문자는 없다.

마지막 줄에 영문 소문자로 이루어진 짐비의 질문 문자열 $S$가 주어진다. $(1 \leq |S| \leq 1,000円)$

출력

첫번째 줄에 질문 문자열 $S$가 $N$개의 모든 규칙을 만족하면 yes를, 하나라도 만족하지 않는다면 no를 출력한다.

제한

예제 입력 1

1
a 1 b
ab

예제 출력 1

yes

예제 입력 2

2
a 3 b c d
c 2 a b
acd

예제 출력 2

no

노트

출처

School > 대전대신고등학교 > 제1회 코더즈 코딩페어 D번

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

출처

대학교 대회

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

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