Module: الگوها در برنامه نویسی پویا - 2


Problem

5 /5


جایگشت

Problem

به مجموعه ای از n عدد طبیعی مختلف داده می شود. جایگشت عناصر این مجموعه در صورتی که برای هر دو عنصر مجاور این جایگشت بزرگترین مقسوم علیه مشترک آنها حداقل k باشد، جایگشت k نامیده می شود. به عنوان مثال، اگر مجموعه عناصر S = {6، 3، 9، 8} داده شود، آنگاه جایگشت {8، 6، 3، 9} یک جایگشت 2 و جایگشت {6، 8، 3، 9} – نه.

جایگشت {p1, p2, …, pn} از نظر واژگانی کمتر از جایگشت {q1< خواهد بود. /sub>، q2، …، qn} اگر یک عدد صحیح مثبت i (1 ≤ i ≤ n) وجود داشته باشد به طوری که pj = qj وقتی j < i و pi < qi.

به عنوان مثال، بیایید همه جایگشت های k مجموعه فوق را به ترتیب واژگانی ترتیب دهیم. برای مثال، دقیقاً چهار جایگشت 2 برای S وجود دارد: {3، 9، 6، 8}، {8، 6، 3، 9}، {8، 6، 9، 3}، و {9، 3، 6 ، 8}. بر این اساس، 2 جایگشت اول در ترتیب واژگانی مجموعه {3، 9، 6، 8} و چهارمین – مجموعه {9، 3، 6، 8}.

شما باید برنامه ای بنویسید که به شما امکان می دهد جایگشت m-امین k را به این ترتیب پیدا کنید.

ورودی
فایل ورودی در خط اول شامل سه عدد طبیعی – n (1 ≤ n ≤ 16)، m و k (1 ≤ m، k ≤ 109). خط دوم شامل n عدد طبیعی متمایز است که از 10 تجاوز نمی کند9. همه اعداد در خطوط با فاصله از هم جدا می شوند.

حصر
خروجی m-امین k جایگشت مجموعه داده شده یا –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