Module: الأنماط في البرمجة الديناميكية - 2


Problem

5 /5


التباديل

Problem

إعطاء مجموعة من n أعداد طبيعية مختلفة. يسمى تبديل عناصر هذه المجموعة بالتناوب k إذا كان القاسم المشترك الأكبر لأي عنصرين متجاورين من هذا التقليب هو k على الأقل. على سبيل المثال ، إذا كانت مجموعة العناصر S = {6 ، 3 ، 9 ، 8} معطاة ، فإن التقليب {8 ، 6 ، 3 ، 9} هو تبديل ، والتبديل {6 ، 8 ، 3 ، 9} & -. لا.

التقليب {p 1 ، p 2 ، & hellip ؛، p n } سيكون أقل معجميًا من التقليب {q 1 < / sub>، q 2 ، & hellip ؛، q n } إذا كان هناك عدد صحيح موجب i (1 & le؛ i & le؛ n) مثل p j = q j عندما j & lt؛ أنا و p i & lt؛ q i .

كمثال ، دعنا نرتب كل التباديل k للمجموعة أعلاه بترتيب معجمي. على سبيل المثال ، هناك أربعة تباينات بالضبط لـ S: {3 ، 9 ، 6 ، 8} ، {8 ، 6 ، 3 ، 9} ، {8 ، 6 ، 9 ، 3} ، و {9 ، 3 ، 6 ، 8}. وفقًا لذلك ، فإن أول تبادلين في الترتيب المعجمي هو المجموعة {3 ، 9 ، 6 ، 8} ، والرابع & ndash؛ مجموعة {9 ، 3 ، 6 ، 8}.

أنت مطالب بكتابة برنامج يسمح لك بإيجاد تبديل m-th k بهذا الترتيب.

إدخال
يحتوي ملف الإدخال في السطر الأول على ثلاثة أرقام طبيعية & ndash؛ n (1 & le؛ n & le؛ 16)، m and k (1 & le؛ m، k & le؛ 10 9 ). السطر الثاني يحتوي على عدد طبيعي مميز لا يتجاوز 10 9 . جميع الأرقام في السطور مفصولة بمسافات.

بصمة
من الضروري إخراج m-th k- التقليب للمجموعة المحددة أو & ndash؛ 1 إذا لم يكن هناك شيء في ملف الإخراج.
أمثلة <الجسم>
# إدخال الإخراج
1 4 1 2
6 8 3 9
3 9 6 8
2 4 4 2
6 8 3 9
9 3 6 8
3 4 5 2
6 8 3 9
-1