자신 만의 모험 선택 서적은 독자가 스토리의 결과에 영향을 미치는 결정을 내려야하는 대화 형 문학의 한 형태입니다. 이야기의 특정 지점에서 독자는 여러 가지 옵션을 선택할 수 있으며 각 옵션은 독자를 책의 다른 페이지로 보냅니다.
예를 들어, 판타지 환경에서 22 페이지로 "점프"하여 신비한 동굴을 탐험하거나 8 페이지로 점프하여 인근 숲을 탐험할지 결정해야 할 수도 있습니다. 이러한 "점프"는 표현 될 수 있습니다. 다음과 같이 페이지 번호 쌍으로 :
14 22
14 8
대부분의 경우 이야기에는 많은 결말이 있지만 몇 가지 좋은 결말이 있습니다. 목표는 스토리를 탐색하여 좋은 결말에 도달하는 것입니다.
직무:
주어진 책에 대한 "점프"목록이 주어지면, 당신의 임무는 특정 결말로 이어질 경로를 결정하는 것입니다. 이 작업은 매우 쉬우므로 가능한 한 적은 문자로 수행해야합니다.
이것은 코드 골프 입니다.
샘플 입력 (여기서 1은 시작이고 100은 목표 임) :
1 10
10 5
10 13
5 12
5 19
13 15
12 20
15 100
샘플 출력 :
1 10 13 15 100
샘플 입력 :
15 2
1 4
2 12
1 9
3 1
1 15
9 3
12 64
4 10
2 6
80 100
5 10
6 24
12 80
6 150
120 9
150 120
샘플 출력 :
1 15 2 12 80 100
노트:
- 점프 목록은 파일 또는 stdin에서 사용자가 입력합니다. 가장 편리한 것을 선택할 수 있습니다.
- 입력은 한 줄에 1 개의 점프를 포함하며 출발지와 목적지는 단일 공백으로 구분됩니다.
- 입력 라인은 특정 순서로 보장되지 않습니다.
- 성공적인 경로는 1 페이지에서 시작하여 100 페이지에서 끝납니다.
- 목표에 대한 경로가 적어도 하나 있다고 가정 할 수 있습니다. 모든 경로를 찾을 필요도없고 최단 경로를 찾을 필요도 없습니다. 적어도 하나만 찾으십시오.
- 가장 작은 페이지 번호는 1입니다. 가장 큰 페이지 번호에는 제한이 없습니다. (int 범위에 맞을 것이라고 가정 할 수 있습니다.)
- 루프가 존재할 수 있습니다. 예를 들어 목록이 5 ~ 10 페이지, 10 ~ 19, 19 ~ 5로 점프했을 수 있습니다.
- 막 다른 곳이있을 수 있습니다. 즉, 대상 페이지로 이동할 위치가 없을 수 있습니다.
- 반대로, 도달 할 수없는 페이지가있을 수 있습니다. 즉, 원점 페이지가 점프의 대상이 아닐 수 있습니다.
- 1에서 100 사이의 모든 페이지 번호가 사용되는 것은 아닙니다.
- 출력은 1로 시작하고 100으로 끝나는 공백으로 구분 된 유효한 페이지 번호 경로로 구성되어야합니다.
이것은 코드 골프이므로 가장 짧은 솔루션이 승리합니다!
편집 : 테스트를 위해 다른 샘플을 추가했습니다.