ดึงแม่เหล็กในอาร์เรย์
พื้นหลัง ฉันมีแม่เหล็กที่ทรงพลังหนึ่งแถวและวัตถุโลหะหลายอันที่อยู่ระหว่างพวกมัน แม่เหล็กจะดึงมันไว้ที่ไหน อินพุต ข้อมูลที่คุณป้อนเป็นจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบซึ่งจะมีอย่างน้อยหนึ่ง1รายการ คุณสามารถใช้รูปแบบที่เหมาะสม 0ของอาร์เรย์แทนพื้นที่ว่างเปล่าและ1s แทนแม่เหล็กถาวร ตัวเลขอื่น ๆ ทั้งหมดเป็นวัตถุโลหะซึ่งถูกดึงโดยแม่เหล็ก วัตถุทุกชิ้นจะถูกดึงเข้าหาแม่เหล็กที่ใกล้ที่สุด (หากมีการผูกกันวัตถุนั้นจะถูกดึงไปทางขวา) และมันจะเคลื่อนที่ไปในทิศทางนั้นจนกว่าจะชนกับแม่เหล็กหรือวัตถุอื่น ในที่สุดวัตถุทั้งหมดได้รวมตัวกันรอบ ๆ แม่เหล็ก ลำดับของวัตถุถูกเก็บรักษาไว้ เอาท์พุต เอาต์พุตของคุณคืออาร์เรย์ที่วัตถุทุกชิ้นถูกดึงใกล้กับแม่เหล็กที่ใกล้ที่สุดเท่าที่จะทำได้ ควรมีรูปแบบเดียวกันกับอินพุต ตัวอย่าง พิจารณาอาร์เรย์ [0,0,2,0,1,1,0,2,0,3,0,5,0,1,0] ซ้ายสุดได้รับการดึงต่อคู่แรกของแม่เหล็กเช่นเดียวกับครั้งที่สอง2 มีแม่เหล็กสี่ขั้นตอนไปในทั้งสองทิศทางจึงได้รับการดึงไปทางด้านขวา มันถูกดึงไปทางขวาและมันก็อยู่ระหว่างและแม่เหล็ก ผลลัพธ์ที่ถูกต้องคือ2353 [0,0,0,2,1,1,2,0,0,0,0,3,5,1,0] กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ [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] -> …