Jones는 자전거를 타고 왕복 여행을하고 싶어합니다. 그는 여러 도시를 임의의 순서로 방문하기를 원하지만 휴가 중 같은 장소에 두 번있는 것을 싫어하기 때문에 자신의 경로가 자체 경로를 넘어서는 안됩니다. 그는 자전거 타기를 좋아하기 때문에 경로의 길이는 전혀 관련이 없지만 목표없이 풍경을 돌아 다니는 것을 싫어합니다. 그가 좋아하는 길은 도시에서 다른 곳으로가는 직선으로 우회하지 않습니다.
Jones는 열렬한 코드 골퍼이므로 도시 세트를 고려할 때 왕복 여행을 계획하는 프로그램을 원합니다. 입력 형식은 A (B|C)
입니다. A
도시의 이름, B
그리고 C
그 좌표입니다. 좌표가 양수이고 1000보다 작다고 가정 할 수 있습니다. 도시에 대한 데이터 세트는 선으로 구분됩니다. 다음은 입력 예의 모양에 대한 예입니다.
SomeTown (1 | 10) 활동 (3 | 4) 어디에나 (7 | 7) 홈 (5 | 1)
존스는 미숙하지 않고 유용한 프로그램을 원합니다. 따라서 다음 기준을 충족하는 한 출력 결과가 어떻게 보이는지 스스로 결정할 수 있습니다.
- 결과는 도시들 사이에 경로가 그려진 도시의지도입니다. 올바른 것이 있으면 경로가 겹치지 않아야하며 시작된 위치에서 끝나야합니다.
- 좌표는 일반적인 프로그래밍과 같습니다 : (1 | 1)은 NW 코너에 있습니다. 지도 테두리에 눈금자를 추가하여 쉽게 읽을 수 있습니다.
- 도시 이름은지도에 기록해야하지만지도의 다른 곳에서 설명하는 약어를 자유롭게 사용하십시오.
- 지도는 ASCII 아트 또는 이미지 일 수 있습니다.
- 출력을 읽을 수있게 유지
출력은 다음과 같습니다.
1234567 1 일 2 * * 삼 * * 4 B * 5 * * 6 * * 7 * C 8 * ** 9 * * 10A ** A : SomeTown B : ACity C : 어디서나 D : 홈
가장 작은 문자 수를 가진 프로그램이 승리합니다. 컴파일러 / 인터프리터에 매개 변수를 컴파일에 필요한 경우 계산하지 않지만이 규칙을 남용하지 마십시오. 일반적인 코드 골프 규칙이 적용됩니다.
다른 테스트 케이스가 있습니다. 출력 결과가 나와 일치하지 않아도되고 나와 같은 경로를 선택하지 않아도됩니다. 출력은 손으로 그려지며 가능한 출력을 보여줍니다. 입력:
집 (5 | 7) 슈퍼마켓 (13 | 12) 공원 (15 | 5) 새로운 광장 (9 | 16) 친구의 집 (20 | 11) 오래된 성 (14 | 21) 리버 사이드 (1 | 20) 해변 (10 | 1) 시네마 (21 | 18) 숲 (23 | 7) 작은 섬 (21 | 1) 코드 골프 박물관 (6 | 25) 공항 (18 | 25) 차 가게 (24 | 14) 레스토랑 (24 | 22) 큰 다리 (3 | 12) SO 건물 (25 | 9)
그리고 이것은 예제 출력입니다.
1111111111222222 1234567890123456789012345 1 H * * K 2 * * * * 삼 * * * * 4 * * ** * 5 * C * 6 * * 7 월 8 * * 9 * Q 10 * * 11 * *** E * 12 PB *** * * 13 * * * * 14 * * * N 15 * * * * 16 * D * * 17 * * * * 18 * * 나는 * 19 * * * * 20G * * * 21 * F * * 22 * ** * O 23 * ** * ** 24 * ** * * 25 L ** M ** 홈 B : 슈퍼마켓 C : 공원 D : 새로운 광장 E : 친구의 집 F : 오래된 성 G : 강변 H : 해변 나 : 영화 J : 숲 K : 작은 섬 L : 코드 골프 박물관 M : 공항 N : 티샵 O : 식당 P : 큰 다리 Q : SO 건물
나는 영어 원어민이 아닙니다. 필요한 경우 내 언어와 문법을 수정하십시오.