อัลกอริทึมการเรียงลำดับ
มี "อัลกอริทึมการเรียงลำดับ" บางครั้งเรียกว่าการเรียงลำดับสตาลินเพื่อเรียงลำดับรายการคุณเพียงแค่ลบองค์ประกอบออกจากรายการจนกว่าจะเรียงลำดับตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่นรายการ [1, 2, 4, 5, 3, 6, 6] เมื่อ "เรียง" โดยใช้การเรียงลำดับสตาลินจะกลายเป็น [1, 2, 4, 5, 6, 6] ทั้งสามถูกลบเพราะมันไม่เป็นระเบียบ ตอนนี้เห็นได้ชัดว่ามีหลายวิธีในการลบองค์ประกอบเพื่อจัดเรียงรายการ ตัวอย่างเช่นรายการใด ๆ ที่มีองค์ประกอบน้อยกว่าสองรายการจะต้องเรียงลำดับดังนั้นเพียงแค่ลบองค์ประกอบมากพอที่สุ่มสี่สุ่มห้าเราสามารถเรียงลำดับรายการได้เสมอ เนื่องจากเป็นกรณีนี้เราจึงสนใจเฉพาะผลลัพธ์ที่ยาวที่สุดเท่าที่เป็นไปได้จากการเรียงลำดับของสตาลิน งานของคุณจะใช้รายการของจำนวนเต็มบวกและส่งออกความยาวของรายการเรียงลำดับ (เพิ่มขึ้น) ที่ยาวที่สุดที่สามารถมาถึงได้โดยการเอาองค์ประกอบออกจากรายการต้นฉบับ นั่นคือความยาวของรายการย่อยที่เรียงลำดับยาวที่สุด (อาจไม่ต่อเนื่องกัน) รายการที่เรียงลำดับสามารถมีองค์ประกอบเดียวกันมากกว่าหนึ่งครั้งในแถว คุณไม่จำเป็นต้องสนับสนุนรายการว่างเปล่าเว้นแต่ว่าโปรแกรมของคุณจะว่างเปล่า เกณฑ์การให้คะแนน คำตอบของคุณจะได้รับคะแนนตามความยาวของการเรียงลำดับสตาลินที่ยาวที่สุดเท่าที่จะเป็นไปได้ โปรแกรมจะถูกตีความเป็นลำดับของไบต์แทนที่จะเป็นตัวอักษรและลำดับของโปรแกรมจะเป็นแบบธรรมชาติที่เกิดขึ้นโดยการตีความจำนวนไบต์เป็นตัวเลข คะแนนต่ำกว่าดีกว่า นี่ไม่ใช่รหัสกอล์ฟ ต่อไปนี้เป็นเครื่องมือที่ไม่ซับซ้อนเพื่อช่วยให้คุณได้คะแนนคำตอบของคุณ กรณีทดสอบ [1, 2, 4, 5, 3, 6, 6] -> 6 [19, …