एक "सॉर्टिंग एल्गोरिथ्म" है जिसे कभी-कभी स्टालिन सॉर्ट कहा जाता है जिसमें एक सूची को सॉर्ट करने के लिए आप सूची से तत्वों को केवल तब तक हटाते हैं जब तक कि यह बढ़ते क्रम में सॉर्ट न हो जाए। उदाहरण के लिए सूची
[1, 2, 4, 5, 3, 6, 6]
जब स्टालिन सॉर्ट का उपयोग करके "सॉर्ट" किया जाता है
[1, 2, 4, 5, 6, 6]
तीनों को हटा दिया गया क्योंकि यह आदेश से बाहर था।
अब स्पष्ट रूप से सूची को छाँटने के लिए तत्वों को हटाने के कई तरीके हैं। उदाहरण के लिए, दो से कम तत्वों वाली किसी भी सूची को क्रमबद्ध किया जाना चाहिए ताकि केवल पर्याप्त तत्वों को आँख बंद करके हम हमेशा एक सूची को सॉर्ट कर सकें। चूंकि यह मामला है, हम केवल स्टालिन प्रकार से सबसे लंबे समय तक संभव परिणाम की परवाह करते हैं ।
आपका कार्य धनात्मक पूर्णांक की एक सूची लेना और सबसे लंबी क्रमबद्ध (बढ़ती) सूची की लंबाई को आउटपुट करना होगा, जिसे मूल सूची से तत्वों को निकालकर प्राप्त किया जा सकता है। यह सबसे लंबी क्रमबद्ध (संभवतः गैर-सन्निहित) उप-सूची की लंबाई है।
क्रमबद्ध सूचियाँ एक पंक्ति में एक से अधिक बार एक ही तत्व हो सकती हैं। जब तक आपका प्रोग्राम खुद खाली न हो, आपको खाली सूची का समर्थन करने की आवश्यकता नहीं है।
स्कोरिंग
आपके उत्तर को सबसे लंबे समय तक संभव स्टालिन प्रकार की लंबाई से बनाया जाएगा। कार्यक्रमों को पात्रों के बजाय बाइट्स के अनुक्रम के रूप में व्याख्या किया जाएगा, और उनका क्रम प्राकृतिक होगा जो बाइट्स को संख्याओं के रूप में व्याख्या करके उत्पन्न होता है। कम अंक बेहतर हैं।
यह कोड-गोल्फ नहीं है
यहां आपके जवाब देने में मदद करने के लिए एक साफ-सुथरा उपकरण है।
परीक्षण के मामलों
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5