اشکان برای سرگرم کردن پرهام یک بازی طراحی کردهاست. او به پرهام یک جایگشت از اعداد صفر تا میدهد و از او میخواهد که با کمترین تعداد حرکت این جایگشت را مرتب کند.
پرهام در هر نوبت میتواند جایگشت را به دو زیردنباله و افراز کند و جایگشت جدید را از کنار هم گذاشتن و به دست آورد. برای مثال او میتواند در یک نوبت جایگشت را به دو زیردنباله و افراز کند و سپس به جایگشت تبدیل کند. توجه کنید که اعضای زیردنباله به همان ترتیبی که در جایگشت هستند باید قرار گیرند، مثلا زیردنباله معتبری از جایگشت داده شده نیست.
به پرهام کمک کنید که با کمترین تعداد حرکت جایگشت داده شده را مرتب کند.
در خط اول ورودی عدد آمده است. در خط بعد عدد آمده که اعداد جایگشت هستند.
در خط اول خروجی ، کمترین تعداد حرکت مورد نیاز را چاپ کنید.
در هر یک خط بعدی عدد چاپ کنید که خط اول خود جایگشت ورودی و پس از آن در هر خط جایگشتی که از روی جایگشت قبلیاش به دست میآید را چاپ کنید.
اگر بیش از یک روش برای مرتب کردن جایگشت با کمترین تعداد حرکت وجود داشتهباشد میتوانید هر کدام را به دلخواه چاپ کنید.
زیرمسئله | نمره | محدودیت |
---|---|---|
۱ | ۱۱ | |
۲ | ۲۳ | جایگشت نزولی است () و توانی از دو است یعنی |
۳ | ۴۶ | |
۴ | ۲۰ | بدون محدودیت اضافی |