나는 밀, 호밀, 보리, 곡물 및 프랑스 빵을 제공하는 빵집에서 일하지만 빵 굽는 사람은 조금 이상합니다. 그는 빵을 무작위로 쌓아 놓고 때로는 선반 끝을 비워 둡니다.
매일 같은 고객이 들어 와서 빵 한 덩어리를 요구하지만, 까다로운 점은 그는 거대 동물이므로 가방을 채울 때 인접한 두 선반에서 덩어리를 연속으로 선택할 수는 없습니다.
인접한 선반 사이를 걷는 데 1 초가 걸립니다. 바쁜 가게입니다. 덩어리의 임의의 구성에 대해, 나는 각 독특한 덩어리 중 하나를 얻는 데 걸리는 시간을 최소화하고 싶습니다. 어떤 선반에서든 시작하고 끝낼 수 있습니다.
오늘의 주문이 W B W G F R W
인 경우 가능한 경로는 0, 3, 5, 1, 4
총 12 초입니다.abs(3-0) + abs(5-3) + abs(1-5) + abs(4-1) = 12
( 1, 2, 3, 4, 5
빵은 인접한 선반에서 연속적으로 골라지기 때문에 작동하지 않습니다.)
인 경우 B W B G B F B R B W B F
가능한 경로는 1, 3, 5, 7, 10
총 9 초입니다.
관리자는 항상 가능한 해결책이 있는지 확인하므로 잘못된 입력을 잡는 것에 대해 걱정할 필요가 없습니다. 그는 보통 주문서를 파일로 보내지 만, 원하는 경우 STDIN에 입력하거나 다른 방식으로 읽을 수 있습니다. 기본 I / O 규칙 에 따라 프로그램이 최상의 경로의 색인과 시간을 인쇄하고 싶습니다 .
한마디로 :
- 5 종류의 빵.
- 로프 주문은 임의의 순서와 길이의 문자열로 나타납니다.
- 고유 한 덩어리 중 하나를 선택해야합니다.
- 인접한 연속 선택을 할 수 없습니다.
- 선택 지수 사이의 거리를 최소화하십시오.
- 유효하지 않은 입력에 대해 걱정할 필요가 없습니다.
- 기본 I / O 규칙이 적용됩니다.
이것은 가장 짧은 바이트 수의 코드 골프 입니다.
'WBWG FRW'
유효한 입력입니까?
0+3+5+1+4=13
하지만1+3+5+7+10=26
,하지9
.