골라 읽는 모험 이야기
면접 대비시간 제한1초메모리 제한128 MB
각 페이지는 두 개의 선택지 또는 하나의 결말을 가진 노드이다. 페이지 1에서 유일한 HAPPY 결말까지의 경로에 있는 페이지 텍스트를 순서대로 출력한다.
문제
제임스는 골라 읽는 모험 책을 수도 없이 읽다가 완전히 질려 버렸습니다. 어떤 선택을 하든 주인공 케니는 늘 비참한 결말을 맞이합니다. 버려진 광산 갱도로 떨어지거나, 수녀들을 가득 태운 버스에 치이거나, 길고양이 떼에게 잡아먹히곤 하죠. 제임스는 책장을 넘기다가 행복한 결말이 적힌 페이지를 발견했지만, 규칙을 따라 그 페이지에 도달하는 방법을 알아내지 못했습니다. 다행히 그는 대신 계산해 줄 프로그램을 작성할 수 있습니다.
번호가 매겨진 페이지들로 이루어진 이야기가 주어지면, 1번 페이지에서 시작해 행복한 결말로 이어지는 페이지의 순서를 찾아 각 페이지의 글을 출력하세요.
입력
첫 번째 줄에 이야기의 개수를 나타내는 정수 ()이 주어집니다. 이야기들 사이에는 빈 줄이 없습니다.
각 이야기는 다음과 같이 주어집니다.
- 페이지 수를 나타내는 정수 ()가 한 줄에 주어집니다.
- 이어서 개의 줄이 주어지며, 번째 줄은 번 페이지를 나타냅니다. 1번 페이지는 항상 선택 페이지입니다. 각 줄의 항목은 하나의 공백으로 구분됩니다.
- 줄 종류 — 한 글자로, 선택 페이지는
C, 종료 페이지는E입니다. - 텍스트 — 큰따옴표로 둘러싸인 문자열입니다. 큰따옴표를 포함해 최대 256자입니다. 큰따옴표는 구분 기호일 뿐 텍스트에 포함되지 않으며, 텍스트 안에는 큰따옴표가 들어 있지 않습니다.
- 선택지 — 선택 페이지(
C)에만 있습니다. 1부터 까지의 정수 두 개로, 독자가 이 페이지에서 넘어갈 수 있는 페이지 번호입니다. - 결말 종류 — 종료 페이지(
E)에만 있습니다.HAPPY또는GRISLY중 하나입니다. 각 이야기에는 행복한 결말이 정확히 하나 있습니다.
- 줄 종류 — 한 글자로, 선택 페이지는
출력
각 이야기에 대해 순서대로 다음을 출력합니다.
STORY k형식의 줄을 출력합니다. 여기서 는 첫 번째 이야기는 1, 두 번째 이야기는 2와 같이 매겨집니다.- 이어서 1번 페이지에서 시작해 행복한 결말에서 끝나는 경로를 따라, 각 페이지의 텍스트를 한 줄에 하나씩 출력합니다. 각 이야기에서 이 경로는 유일합니다.