اگر جایگشتی از اعداد تا باشد، جایگشت که آن را ابرجایگشت مینامیم، یک جایگشت تایی است که به صورت زیر تعریف میشود:
دنبالهی را برابر با
تعریف میکنیم، حال جایگشت برابر است با:
برای مثال ابرجایگشت 2 3 1
برابر است با 5 6 4 8 9 7 2 3 1
.
برنامهای بنویسید که اندازهی دورهای گرافجایگشت را به عنوان ورودی بگیرد، یک جایگشت تایی مانند که آن مانند ورودی باشد را پیدا کند و تعداد جایگشتهای تایی مانند که گرافجایگشت آنها به این شکل است را در خروجی چاپ کند.
با توجه به اینکه این مقدار ممکن است بزرگ باشد، باقیماندهی آن را بر محاسبه کنید.
با تشکر از آقای مهندس و خانم دکتر!
سطر اول ورودی شامل دو عدد طبیعی و است.
در هر یک از سطر بعدی به ترتیب دو عدد و آمده است که به معنای وجود دور به طول در گرافجایگشت است.
تضمین میشود که اندازهی تمامی دورهایی که در سطرهای دوم تا آمدهاند متمایز است.
تضمین میشود که و حداقل یک جایگشت با چنین ابرجایگشتی وجود دارد.
در ابتدای خروجی گرافجایگشت یکی از جایگشتهای که جایگشت دادهشده در ورودی باشد را به همان فرمت ورودی چاپ کنید. در اولین سطر عدد و در سطر بعدی در هر سطر دو عدد و را چاپ کنید که نشان میدهد گرافجایگشت ، به تعداد تا دور به طول دارد. دقت کنید که باید برابر باشد و دنبالهی ها باید اکیداً صعودی باشد. در صورت وجود چندین جواب هر کدام از آنها را میتوانید چاپ کنید.
در سطر آخر خروجی باقیماندهی تعداد جایگشتهایی که گراف ابر جایگشت آنها مطابق ورودی است را بر چاپ کنید.
زیرمسئله | نمره | محدودیت |
---|---|---|
۱ | ۱۰ | |
۲ | ۱۰ | |
۳ | ۴۰ | |
۴ | ۴۰ | بدون محدودیت اضافی |
(۲۴امین دوره المپیاد کامپیوتر - آزمون ششم - ۱۳۹۳/۰۶/۱۷)