คุณควรจะเขียนโปรแกรมหรือฟังก์ชั่นซึ่งจะเป็นจำนวนเต็มไม่เป็นลบk
และรายการจำนวนเต็มเรียงเป็นอินพุตและเอาต์พุตหรือผลตอบแทนที่เป็นรายการที่เรียบL
M
M
ถูกสร้างขึ้นจากรายการจากน้อยไปมากL
โดยการใส่k
องค์ประกอบจำนวนเต็มส่วนใหญ่ในขณะที่เก็บรายการเรียงลำดับ จำนวนเต็มที่แทรกควรเลือกในลักษณะที่ความแตกต่างไปข้างหน้าสูงสุดของM
จะมีขนาดเล็กที่สุด เราจะเรียกค่านี้ว่า "ความเรียบ" ที่เล็กที่สุด
ความแตกต่างไปข้างหน้าของรายการ-1 3 8 11 15
ที่มีและความแตกต่างไปข้างหน้าสูงสุดคือ4 5 3 4
5
ด้วย2
การแทรกความเรียบเนียนของ2 10 15
มี4
และการส่งออกที่เป็นไปได้มีความแตกต่างไปข้างหน้า2 6 10 11 15
4 4 1 4
อินพุต
k
จำนวนเต็มไม่เป็นลบ- รายการจำนวนเต็มน้อยไปหามากที่
L
มีองค์ประกอบอย่างน้อย 2 รายการ
เอาท์พุต
M
รายการจำนวนเต็มจากน้อยไปมาก- หากมีคำตอบที่ถูกต้องหลายคำให้ส่งออกหนึ่งในนั้น (ข้อใดข้อหนึ่งเพียงพอ)
- โซลูชันของคุณต้องแก้ไขกรณีทดสอบตัวอย่างใด ๆ ในเวลาไม่กี่นาทีบนคอมพิวเตอร์ของฉัน (ฉันจะทดสอบเฉพาะกรณีที่ปิดฉันมีพีซีต่ำกว่าค่าเฉลี่ย)
ตัวอย่าง
อินพุต ( k
, L
) => เอาต์พุตที่เป็นไปได้และความแตกต่างไปข้างหน้าสูงสุด (ซึ่งไม่ได้เป็นส่วนหนึ่งของเอาต์พุต) ในวงเล็บ
0, 10 20 => 10 20 (10)
2, 1 10 => 1 4 7 10 (3)
2, 2 10 15 => 2 6 10 11 15 (4)
3, 2 10 15 => 2 5 8 10 12 15 (3)
5, 1 21 46 => 1 8 15 21 27 33 39 46 (7)
5, 10 20 25 33 => 10 14 18 20 24 25 29 33 (4)
3, 4 4 6 9 11 11 15 16 25 28 36 37 51 61 => 4 4 6 9 11 11 15 16 22 25 28 36 37 45 51 59 61 (8)
15, 156 888 2015 => 156 269 382 495 608 721 834 888 1001 1114 1227 1340 1453 1566 1679 1792 1905 2015 (113)
8, -399 -35 -13 56 157 => -399 -347 -295 -243 -191 -139 -87 -35 -13 39 56 108 157 (52)
5, 3 3 3 => 3 3 3 3 (0)
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ
rF<seq>
จะใช้เพื่อคลายทูเปิลสององค์ประกอบ