चुनौती
एन पूर्णांकों के दिए गए सेट के लिए, एक प्रोग्राम लिखें जो इसके लेक्सोग्राफिक इंडेक्स को आउटपुट करेगा।
नियम
- इनपुट केवल रिक्त स्थानों द्वारा अलग किए गए अद्वितीय गैर-नकारात्मक पूर्णांक का एक सेट होना चाहिए।
- आपको क्रमपरिवर्तन के लेक्सोग्राफिक इंडेक्स (रेंज 0 से एन -1 समावेशी) का उत्पादन करना चाहिए।
- कोई क्रमपरिवर्तन पुस्तकालयों या क्रमपरिवर्तन अंतर्निर्मित का उपयोग नहीं किया जा सकता है।
- आप अनुक्रमणिका खोजने में मदद करने के लिए क्रमपरिवर्तन के सेट या इनपुट के क्रमपरिवर्तन के किसी भी सबसेट को उत्पन्न नहीं कर सकते हैं।
- आप अगले / पिछले (lexicographically) क्रमचय के लिए दिए गए क्रमांकन को बढ़ा या घटा भी नहीं सकते।
- बोनस अंक (-10 बाइट्स) यदि आपको फैक्टरियल का उपयोग किए बिना इसे पूरा करने का कोई रास्ता मिल जाए।
- एन = 100 के लिए रनटाइम 1 मिनट से कम होना चाहिए
- बाइट गिनती जीत से सबसे छोटा कोड
- विजेता को मंगलवार (22 जुलाई, 2014) को चुना गया।
क्रमपरिवर्तन के बारे में अधिक जानकारी
- http://www.monkeyphysics.com/articles/read/26/numbering_permutations.html
- क्रमचय समूह संचालन
- http://lin-ear-th-inking.blogspot.com/2012/11/enumerating-permutations-using.html
उदाहरण
0 1 2 --> 0
0 2 1 --> 1
1 0 2 --> 2
1 2 0 --> 3
2 0 1 --> 4
2 1 0 --> 5
0 1 2 3 4 5 6 7 --> 0
0 1 2 3 4 5 7 6 --> 1
0 1 2 3 4 6 5 7 --> 2
1 3 5 17 --> 0
781 780 779 13 --> 23
81 62 19 12 11 8 2 0 --> 40319
195 124 719 1 51 6 3 --> 4181