इस प्रकार कोलकोस्की अनुक्रम (OEIS A000002 ) को परिभाषित किया गया है:
कोलाकोस्की अनुक्रम एक ऐसा अनुक्रम है जिसमें सम्मिलित है
1
और2
, अनुक्रम काn
th तत्व अनुक्रमn
में समान तत्वों (रन) के वें समूह की लंबाई है। अनुक्रम और संबंधित लंबाई के पहले 20 शब्द हैं:1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 2 1 1 2 1 2 2 1 2 2 1
अनिवार्य रूप से, कोलाकोस्की अनुक्रम के समान तत्वों के समूहों की लंबाई ही कोलाकोस्की अनुक्रम है।
अब तक, इतना अच्छा, लेकिन यह कि हमें खुद को 1
और क्यों सीमित करना चाहिए 2
? हम नहीं जा रहे हैं! दो आदानों को देखते हुए, सकारात्मक पूर्णांक A
और एक पूर्णांक की एक सरणी N
, N
पुनरावर्तन द्वारा परिभाषित कोलाकोस्की-जैसे अनुक्रम की पहली शर्तों को वापस करते हैं A
। इसे बेहतर ढंग से समझने के लिए, यहां ब्रैकेट्स में नए जोड़े गए समूहों की लंबाई के साथ काम किया गया उदाहरण है:
A = [2, 3, 1]
N = 25
2: [[2], 2 ]
3: [ 2 ,[2], 3 , 3 ]
1: [ 2 , 2 ,[3], 3 , 1 , 1 , 1 ]
2: [ 2 , 2 , 3 ,[3], 1 , 1 , 1 , 2 , 2 , 2 ]
3: [ 2 , 2 , 3 , 3 ,[1], 1 , 1 , 2 , 2 , 2 , 3 ]
1: [ 2 , 2 , 3 , 3 , 1 ,[1], 1 , 2 , 2 , 2 , 3 , 1 ]
2: [ 2 , 2 , 3 , 3 , 1 , 1 ,[1], 2 , 2 , 2 , 3 , 1 , 2 ]
3: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 ,[2], 2 , 2 , 3 , 1 , 2 , 3 , 3 ]
1: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 ,[2], 2 , 3 , 1 , 2 , 3 , 3 , 1 , 1 ]
2: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 ,[2], 3 , 1 , 2 , 3 , 3 , 1 , 1 , 2 , 2 ]
3: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 ,[3], 1 , 2 , 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 ]
1: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 , 3 ,[1], 2 , 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 , 1 ]
2: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 1 ,[2], 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 , 1 , 2 , 2 ]
C: [ 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 1 , 2 , 3 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 3 , 1 , 2 , 2 ]
यहाँ एक प्रमुख के साथ एक और काम किया गया उदाहरण है 1
:
A = [1, 2, 3]
N = 10
1: [[1]]
2: [ 1 ,[2], 2 ]
3: [ 1 , 2 ,[2], 3 , 3 ]
1: [ 1 , 2 , 2 ,[3], 3 , 1 , 1 , 1 ]
2: [ 1 , 2 , 2 , 3 ,[3], 1 , 1 , 1 , 2 , 2 , 2 ]
C: [ 1 , 2 , 2 , 3 , 3 , 1 , 1 , 1 , 2 , 2 ]
जैसा कि आप ऊपर देख सकते हैं, अंतिम परिणाम N = 10
तत्वों को काट दिया गया था । n
वें तत्व होना चाहिए कितनी देर n
वें बराबर-तत्व समूह है, भले ही तत्व में ही समूह यह को संदर्भित करता है में अंतर्गत आता है। जैसा कि उपरोक्त मामले में, पहला 1
पहले ऐसे समूह को संदर्भित करता है जो कि बस है 1
, और पहला 2
दूसरा ऐसे समूह को संदर्भित करता है, जो इसके साथ शुरू होता है।
नियम
- आप मान सकते हैं कि
A
कभी भी दो या दो से अधिक समान तत्व नहीं होंगे।A
इसमें एक से अधिक बार पूर्णांक हो सकता है, लेकिन पहले और अंतिम तत्व समान नहीं होंगे, औरA
इसमें कम से कम 2 तत्व होंगे (उदाहरण के लिए[1, 2, 2, 3]
,[2, 4, 3, 1, 2]
और[3]
दिए जाने वाले नहीं हैं)। ऐसा इसलिए है क्योंकि यदि लगातार समान तत्व थे, तो अंतिम परिणाम इस तरह के अनुक्रम के लिए एक अमान्य उपसर्ग होगा। - आप मान सकते हैं कि
A
केवल धनात्मक पूर्णांक होते हैं (क्योंकि ऐसा क्रम अन्यथा अपरिभाषित होगा)। - आप मान सकते हैं
N
कि एक गैर-नकारात्मक पूर्णांक (N >= 0
) है। - आप अनुरोध की तुलना में अधिक शर्तें नहीं लौटा सकते।
- मानक खामियों में से किसी एक का उपयोग करना सख्त वर्जित है।
- आप किसी भी उचित I / O विधि का उपयोग कर सकते हैं ।
- आपके उत्तर को प्राकृतिक भाषा सीमाओं से परे काम करने की आवश्यकता नहीं है, लेकिन सिद्धांत रूप में आपके एल्गोरिथ्म को मनमाने ढंग से बड़े इनपुट और पूर्णांक के लिए काम करना चाहिए ।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा उत्तर जीतता है।
परीक्षण के मामलों
[5, 1, 2], 0 -> []
[2, 3, 1], 25 -> [2, 2, 3, 3, 1, 1, 1, 2, 2, 2, 3, 1, 2, 3, 3, 1, 1, 2, 2, 3, 3, 3, 1, 2, 2]
[1, 2, 3], 10 -> [1, 2, 2, 3, 3, 1, 1, 1, 2, 2]
[1, 2], 20 -> [1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1]
[1, 3], 20 -> [1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 1, 1, 1, 3]
[2, 3], 50 -> [2, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 2, 2, 3, 3]
[7, 4], 99 -> [7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 4]
[1, 2, 3], 5 -> [1, 2, 2, 3, 3]
[2, 1, 3, 1], 2 -> [2, 2]
[1, 3, 5], 2 -> [1, 3]
[2, 3, 2, 4], 10 -> [2, 2, 3, 3, 2, 2, 2, 4, 4, 4]