Nhờ cộng đồng PPCG, Santa giờ đã cân bằng giỏ hàng của mình. Bây giờ, anh ta cần phải di chuyển chúng vào bến tàu vận chuyển để chúng có thể được gửi đến các khoang tải. Thật không may, các dấu vết để di chuyển các xe đẩy xung quanh là một mớ hỗn độn, và anh ta cần phải tìm ra cách để có được tất cả xung quanh mà không bị rơi cùng nhau!
Thử thách
Bạn sẽ được cung cấp các bản nhạc cho mỗi giỏ hàng dưới dạng danh sách "nhãn" (hoặc trạm). Các xe đẩy phải được di chuyển sao cho vào bất kỳ khung thời gian nào, không có hai xe nào trên cùng một nhãn / trạm. Về cơ bản, các xe đẩy di chuyển giữa các vị trí mà mỗi vị trí có một nhãn duy nhất.
Bài tập
Đưa ra các dấu vết cho mỗi giỏ hàng dưới dạng danh sách các nhãn (tất cả đều là số nguyên dương), xác định thời điểm mỗi giỏ hàng sẽ được phát hành để gửi tất cả các giỏ hàng đến đích một cách an toàn trong thời gian ngắn nhất.
Đây là một lời giải thích về cách toàn bộ hệ thống theo dõi hoạt động. Giả sử giỏ hàng i
được phát hành tại một thời điểm t_i
trên đường đua có nhãn T_i_1, T_i_2, ..., T_i_n
. Sau đó, trong thời gian t_1
tới t_i-1
, giỏ hàng i
không nằm trên lưới và có thể bỏ qua.
Tại khung thời gian t_i
, giỏ hàng là trên nhãn T_i_1
, và đối với mỗi khung thời gian t_k
từ t_i
đến t_i+n
(nửa bao gồm), giỏ hàng là trên nhãn T_i_k+1
.
Đối với tất cả các khung thời gian sau và bao gồm t_i+n
, giỏ hàng đã đến đích và không còn trên lưới.
Tổng thời gian t_T
thực hiện là khung thời gian cuối cùng với một giỏ hàng vẫn còn trên đường đua trong hệ thống.
Thông số kỹ thuật
Đưa ra một hệ thống theo dõi, trả về một danh sách các khung thời gian [t_1, t_2, ..., t_n]
mà i
giỏ hàng bắt đầu tại thời điểm đó t_i
, sao cho không có sự sắp xếp nào khác cho phép các xe đẩy đến đích một cách an toàn với tổng thời gian ít hơn.
Xét về "an toàn", nếu tại bất kỳ khung thời gian từ t_1
để t_T
có nhiều hơn một giỏ hàng trên bất kỳ nhãn, sau đó họ va chạm và sự sắp xếp không "an toàn". Lưu ý rằng hai xe có thể di chuyển từ a, b
đến b, a
và vẫn "an toàn" vì các tuyến đường là 2 chiều.
Định dạng thông số kỹ thuật
Đầu vào sẽ được đưa ra dưới dạng ma trận các số nguyên dương ở bất kỳ định dạng hợp lý nào. Đầu ra phải được đưa ra dưới dạng danh sách các số nguyên dương ở bất kỳ định dạng hợp lý nào. Bạn có thể cung cấp đầu ra trong các khung thời gian được lập chỉ mục bằng 0, do đó, đầu ra sẽ là một danh sách các số nguyên không âm ở bất kỳ định dạng hợp lý nào.
Quy tắc
- Áp dụng sơ hở tiêu chuẩn
- Đây là một môn đánh gôn, vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng
- Không có câu trả lời sẽ được chấp nhận
Các trường hợp thử nghiệm
Input -> Output
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] -> [1, 1, 1]
[[1, 2, 3], [1, 2, 3]] -> [1, 2]
[[1, 2, 3], [3, 2, 1]] -> [1, 2]
[[1, 2, 3, 4], [4, 3, 2, 1]] -> [1, 1]
[[1, 1, 1], [1, 1, 1]] -> [1, 4]
[[1, 2, 3, 4], [2, 4, 3, 1]] -> [2, 1]
[[1, 2, 3, 4, 5, 6, 7], [2, 3, 3, 4], [5, 4, 3]] -> [1, 3, 4]
[[1, 2, 3, 4, 4], [1, 2, 3, 5, 4], [1, 2, 3, 4, 5]] -> [2, 3, 1]
Lưu ý: Tôi đã lấy cảm hứng cho loạt thử thách này từ Advent Of Code . Tôi không có liên kết với trang web này
Bạn có thể xem danh sách tất cả các thử thách trong chuỗi bằng cách xem phần 'Liên kết' của thử thách đầu tiên tại đây .
Chúc bạn chơi golf vui vẻ!