ब्लॉक फेरबदल प्रकार
ब्लॉक फेरबदल तरह एक (बल्कि कृत्रिम) एक सूची छँटाई की विधि है। यह निम्नानुसार काम करता है, एक उदाहरण द्वारा सचित्र।
[6, 1, 0, 3, 2, 4, -2, -1]
Break list into contiguous blocks
[6][1, 0][3, 2, 4][-2, -1]
Sort each block
[6][0, 1][2, 3, 4][-2, -1]
Sort blocks lexicographically
[-2, -1][0, 1][2, 3, 4][6]
Concatenate
[-2, -1, 0, 1, 2, 3, 4, 6]
सन्निहित ब्लॉकों में विभाजन को मनमाने ढंग से चुना जा सकता है। हालांकि, ब्लॉक के सभी विकल्प अंत में एक हल की गई सूची नहीं देंगे:
[6, 1, 0, 3, 2, 4, -2, -1]
[6, 1, 0][3, 2, 4][-2, -1]
[0, 1, 6][2, 3, 4][-2, -1]
[-2, -1][0, 1, 6][2, 3, 4]
[-2, -1, 0, 1, 6, 2, 3, 4]
यदि सभी ब्लॉकों की लंबाई 1 है, या यदि केवल एक ब्लॉक है, तो निश्चित रूप से परिणाम को हल किया जाएगा। लेकिन ये बल्कि चरम मामले हैं। इस चुनौती में, आपका कार्य ब्लॉक की संख्या और एक ब्लॉक की अधिकतम लंबाई के बीच एक संतुलन खोजना है।
काम
आपका इनपुट पूर्णांक L की एक गैर-रिक्त सूची है , जिसे किसी भी उचित प्रारूप में लिया गया है। आपका आउटपुट सबसे छोटा पूर्णांक N होगा , जिससे L को ब्लॉक फेरबदल किया जा सकता है ताकि ब्लॉक की संख्या और प्रत्येक ब्लॉक की लंबाई N पर हो ।
प्रत्येक भाषा में सबसे कम बाइट गिनती जीतती है। मानक कोड-गोल्फ नियम लागू होते हैं।
परीक्षण के मामलों
[5] -> 1
[1,2] -> 2
[0,2,1,-1] -> 3
[-1,0,2,1] -> 2
[9,3,8,2,7] -> 4
[9,2,8,3,7] -> 3
[5,9,3,7,2,4,8] -> 7
[-1,-2,1,2,-1,-2,7] -> 4
[6,1,0,3,2,4,-2,-1] -> 4
[12,5,6,-6,-1,0,2,3] -> 3
[1,0,1,0,1,0,1,0,1,0] -> 6
[1,2,1,3,1,2,3,2,4,3] -> 5
[7,7,7,7,8,9,7,7,7,7] -> 4