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_itrên đường đua có nhãn T_i_1, T_i_2, ..., T_i_n. Sau đó, trong thời gian t_1tới t_i-1, giỏ hàng ikhô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_ktừ 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_Tthự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à igiỏ 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_Tcó 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, avà 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ẻ!