Tôi làm việc tại một tiệm bánh phục vụ lúa mì, lúa mạch đen, lúa mạch, ngũ cốc và bánh mì Pháp, nhưng người thợ làm bánh hơi kỳ lạ - anh ta xếp các ổ bánh theo thứ tự ngẫu nhiên, và đôi khi chỉ để một số kệ ở cuối.
Mỗi ngày, cùng một khách hàng đến và yêu cầu một trong từng ổ bánh mì, nhưng điều khó khăn là, anh ta là một mầm cây, vì vậy khi tôi đổ đầy túi của anh ta, tôi không thể lấy ổ bánh từ hai kệ liền kề trong các lựa chọn liên tiếp.
Phải mất một giây để đi bộ giữa các kệ liền kề. Đó là một cửa hàng bận rộn; đối với bất kỳ cấu hình ngẫu nhiên nào của các ổ bánh, tôi muốn giảm thiểu thời gian cần thiết để có được một trong mỗi ổ bánh duy nhất. Tôi có thể bắt đầu và kết thúc tại bất kỳ kệ.
Nếu đặt hàng ngày hôm nay W B W G F R W, một đường dẫn có thể là 0, 3, 5, 1, 4, trong tổng cộng 12 giây:abs(3-0) + abs(5-3) + abs(1-5) + abs(4-1) = 12
( 1, 2, 3, 4, 5không hoạt động, vì bánh mì được chọn liên tiếp từ các kệ liền kề.)
Nếu đó B W B G B F B R B W B F, một con đường có thể là 1, 3, 5, 7, 10, trong tổng cộng 9 giây.
Người quản lý luôn đảm bảo có một giải pháp khả thi, vì vậy tôi không cần phải lo lắng về việc bắt các đầu vào xấu. Anh ấy thường gửi cho tôi thứ tự trong một tập tin, nhưng nếu tôi muốn, tôi có thể gõ nó vào STDIN hoặc đọc nó theo một cách khác. Tôi muốn chương trình in ra các chỉ số của đường dẫn tốt nhất, cũng như thời gian của nó, theo quy tắc I / O mặc định .
Nói ngắn gọn:
- 5 loại bánh mì.
- Đơn đặt hàng Loaf xuất hiện dưới dạng chuỗi của thứ tự ngẫu nhiên và độ dài.
- Phải chọn một trong mỗi ổ duy nhất.
- Không thể thực hiện các lựa chọn liên tiếp liền kề.
- Giảm thiểu khoảng cách giữa các chỉ số lựa chọn.
- Đừng lo lắng về đầu vào không hợp lệ.
- Quy tắc I / O mặc định được áp dụng.
Đây là mã golf , số byte ngắn nhất sẽ thắng.
'WBWG FRW'một đầu vào hợp lệ?
0+3+5+1+4=13nhưng1+3+5+7+10=26, không phải9.