골라 읽는 모험 이야기

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 페이지는 두 개의 선택지 또는 하나의 결말을 가진 노드이다. 페이지 1에서 유일한 HAPPY 결말까지의 경로에 있는 페이지 텍스트를 순서대로 출력한다.
난이도

쉬움10점 중 3점

유형
그래프, DFS, 구현, 문자열 매칭
정답자
아직 제출이 없습니다

문제

제임스는 골라 읽는 모험 책을 수도 없이 읽다가 완전히 질려 버렸습니다. 어떤 선택을 하든 주인공 케니는 늘 비참한 결말을 맞이합니다. 버려진 광산 갱도로 떨어지거나, 수녀들을 가득 태운 버스에 치이거나, 길고양이 떼에게 잡아먹히곤 하죠. 제임스는 책장을 넘기다가 행복한 결말이 적힌 페이지를 발견했지만, 규칙을 따라 그 페이지에 도달하는 방법을 알아내지 못했습니다. 다행히 그는 대신 계산해 줄 프로그램을 작성할 수 있습니다.

번호가 매겨진 페이지들로 이루어진 이야기가 주어지면, 1번 페이지에서 시작해 행복한 결말로 이어지는 페이지의 순서를 찾아 각 페이지의 글을 출력하세요.

입력

첫 번째 줄에 이야기의 개수를 나타내는 정수 nn (1≤n≤1001 \le n \le 100)이 주어집니다. 이야기들 사이에는 빈 줄이 없습니다.

각 이야기는 다음과 같이 주어집니다.

  • 페이지 수를 나타내는 정수 XX (1<X<1001 < X < 100)가 한 줄에 주어집니다.
  • 이어서 XX개의 줄이 주어지며, ii번째 줄은 ii번 페이지를 나타냅니다. 1번 페이지는 항상 선택 페이지입니다. 각 줄의 항목은 하나의 공백으로 구분됩니다.
    • 줄 종류 — 한 글자로, 선택 페이지는 C, 종료 페이지는 E입니다.
    • 텍스트 — 큰따옴표로 둘러싸인 문자열입니다. 큰따옴표를 포함해 최대 256자입니다. 큰따옴표는 구분 기호일 뿐 텍스트에 포함되지 않으며, 텍스트 안에는 큰따옴표가 들어 있지 않습니다.
    • 선택지 — 선택 페이지(C)에만 있습니다. 1부터 XX까지의 정수 두 개로, 독자가 이 페이지에서 넘어갈 수 있는 페이지 번호입니다.
    • 결말 종류 — 종료 페이지(E)에만 있습니다. HAPPY 또는 GRISLY 중 하나입니다. 각 이야기에는 행복한 결말이 정확히 하나 있습니다.

출력

각 이야기에 대해 순서대로 다음을 출력합니다.

  1. STORY k 형식의 줄을 출력합니다. 여기서 kk는 첫 번째 이야기는 1, 두 번째 이야기는 2와 같이 매겨집니다.
  2. 이어서 1번 페이지에서 시작해 행복한 결말에서 끝나는 경로를 따라, 각 페이지의 텍스트를 한 줄에 하나씩 출력합니다. 각 이야기에서 이 경로는 유일합니다.

예제1

  1. 예제 1

    입력
    2
    3
    C "Arrived at LSU for the contest" 2 3
    E "Was devoured by sidewalk ants" GRISLY
    E "Won the contest. Received glory and nachos." HAPPY
    5
    C "Saw a peanut" 3 5
    E "Made peanut butter sandwich" HAPPY
    C "Found a hammer" 4 2
    E "Hit self on head with hammer, ouch!" GRISLY
    E "Ate the peanut, choked on it, and died" GRISLY
    
    예상 출력
    STORY 1
    Arrived at LSU for the contest
    Won the contest. Received glory and nachos.
    STORY 2
    Saw a peanut
    Found a hammer
    Made peanut butter sandwich