Lý lịch
Tôi có một hàng nam châm cực mạnh và một loạt các vật kim loại nằm giữa chúng. Nam châm sẽ kéo chúng ở đâu?
Đầu vào
Đầu vào của bạn là một mảng các số nguyên không âm, sẽ chứa ít nhất một số nguyên 1
. Bạn có thể sử dụng bất kỳ định dạng hợp lý.
Các 0
s của mảng đại diện cho không gian trống rỗng, và 1
là đại diện cho nam châm cố định. Tất cả các số khác là các vật kim loại, được kéo bởi các nam châm. Mọi vật thể được kéo về phía nam châm gần nhất (nếu có một chiếc cà vạt, vật thể được kéo sang phải) và nó di chuyển theo hướng đó cho đến khi chạm vào nam châm hoặc một vật thể khác. Cuối cùng, tất cả các đối tượng đã tập trung xung quanh các nam châm. Thứ tự của các đối tượng được bảo tồn.
Đầu ra
Đầu ra của bạn là mảng mà mọi đối tượng đã được kéo càng gần nam châm gần nhất càng tốt. Nó nên có cùng định dạng với đầu vào.
Thí dụ
Hãy xem xét các mảng
[0,0,2,0,1,1,0,2,0,3,0,5,0,1,0]
Phần ngoài cùng bên trái 2
được kéo về phía cặp nam châm đầu tiên, cũng như phần thứ hai 2
. Cái 3
này có một nam châm cách bốn bước ở cả hai hướng, vì vậy nó bị kéo sang phải. Cái này 5
cũng được kéo sang phải, và nó nằm giữa 3
nam châm và nam châm. Đầu ra đúng là
[0,0,0,2,1,1,2,0,0,0,0,3,5,1,0]
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
[0,1,0] -> [0,1,0]
[1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0]
[7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0]
[1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1]
[1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0]
[1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> [1,2,3,4,5,6,7,0,0,0,8,9,10,11,1]
[12,3,0,0,1,0,1,3,0,0,6,12,0,0,0,1] -> [0,0,12,3,1,0,1,3,6,0,0,0,0,0,12,1]
1
là một ý tưởng hay!