어드벤처 게임

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

요약
방마다 금화를 채워주거나 소모시키는 조건이 있는 미로에서 1번 방에서 시작해 n번 방에 도달할 수 있는지 판정합니다.
난이도

보통10점 중 6점

유형
그래프, BFS, DFS
정답자
아직 제출이 없습니다

문제

마법의 미로에는 1번부터 n번까지 번호가 붙은 방이 있다. 각 방에는 다른 방으로 이어지는 문들이 있고, 문에는 도착할 방 번호가 적혀 있다. 방은 빈 방이거나, 모험가의 소지금을 채워 주는 레프리콘이 있거나, 입장료를 받는 트롤이 있는 방이다.

레프리콘이 있는 방에 들어가면 현재 소지금이 그 방의 금액보다 적을 때 그 금액까지 금화를 채워 준다. 이미 그 금액 이상을 가지고 있으면 소지금은 그대로 유지된다. 트롤이 있는 방에 들어가려면 그 방의 금액만큼 금화를 지불해야 하며, 지불할 수 없으면 그 방에 들어갈 수 없다. 이 규칙은 모험가가 처음 1번 방에 들어갈 때도 적용된다.

모험가는 소지금 0으로 시작한다. 1번 방에서 출발해 n번 방에 도착할 수 있는지 판단하라.

입력

입력은 여러 개의 미로로 구성된다. 각 미로의 첫 줄에는 방의 수 n이 주어진다 (1 <= n <= 1000).

이어지는 n개의 줄에는 1번 방부터 n번 방까지의 정보가 차례로 주어진다. 한 줄은 방의 종류를 나타내는 문자 하나(E, L, T), 금액, 그리고 그 방에서 이동할 수 있는 방 번호들의 목록으로 이루어진다. E는 빈 방이며 금액은 0이다. L은 레프리콘이 있는 방, T는 트롤이 있는 방이고, 이때 금액은 500 이하의 자연수이다. 각 방 번호 목록은 0으로 끝난다.

방의 수로 0이 주어지면 입력을 종료한다.

출력

각 미로마다 한 줄에 하나씩, 1번 방에서 n번 방까지 도착할 수 있으면 Yes, 그렇지 않으면 No를 출력한다.

예제1

  1. 예제 1

    입력
    3
    E 0 2 0
    L 10 3 0
    T 15 1 2 0
    4
    E 0 2 3 0
    L 201 2 3 0
    L 10 4 0
    T 15 2 3 1 0
    0
    
    예상 출력
    No
    Yes