- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
- آزمون عملی دوم فاینال سی و دومین دوره المپیاد کامپیوتر ایران
علیجان گاوصندوق هوشمندی دارد که رمز آن را فراموش کرده است. او میداند رمز گاوصندوقش جایگشتی از اعداد 1 تا n میباشد. علیجان از گاوصندوق هوشمند راهنمایی میگیرد تا رمز را پیدا کند. اگر رمز گاوصندوق جایگشت
s=⟨s1,s2,⋯,sn⟩
باشد، ابتدا عملیات زیر را انجام میدهد، و سپس جایگشت نهایی را به علیجان میدهد.

علیجان مقدار k و جایگشت بعد از اجرا شدن کد بالا روی آن را دارد. او میخواهد بداند چند دنباله مختلف ممکن است رمز گاوصندوقش باشد.
ورودی🔗
در خط اول ورودی دو عدد طبیعی n و سپس k بهترتیب میآیند.
در خط دوم ورودی n عدد
s1,s2,⋯,sn
بهترتیب میآیند.
خروجی🔗
در تنها خط خروجی، تعداد دنبالههای مختلفی که میتوانند رمز گاوصندوق باشند را چاپ کنید. از آنجایی که این مقدار ممکن است بزرگ باشد، باقیمانده تقسیم آن بر 109+7 را چاپ کنید.
محدودیتها🔗
2≤n,k≤200000
1≤si≤n
- شرط si≠sj به ازای تمامی i≠j برقرار میباشد.
زیرمسئلهها🔗
زیرمسئله |
نمره |
محدودیت |
۱ |
۱۰ |
n≤15 |
۲ |
۲۱ |
k=1 |
۳ |
۲۹ |
k=2 و n≤2000 |
۴ |
۱۷ |
k≤50 |
۵ |
۲۳ |
بدون محدودیت اضافی |
مثال🔗
ورودی نمونه ۱🔗
خروجی نمونه ۱🔗
ورودی نمونه ۲🔗
خروجی نمونه ۲🔗
جایگشت
⟨3,5,1,6,4,2⟩
یکی از جایگشتهایی است که ممکن است رمز گاوصندوق دوم باشد. عملیاتهایی که روی این جایگشت انجام میشود:
- در مرحله اول، s1>min(s2,s3) میباشد، پس جابهجایی انجام میدهد و به جایگشت ⟨5,3,1,6,4,2⟩ تبدیل میشود.
- در مرحله دوم، s2>min(s3,s4) میباشد، پس جابهجایی انجام میدهد و به جایگشت ⟨5,1,3,6,4,2⟩ تبدیل میشود.
- در این مرحله جابهجایی انجام نمیدهد.
- در این مرحله مجددا جابهجایی انجام میدهد و به جایگشت ⟨5,1,3,4,6,2⟩ تبدیل میشود.
- در مرحله آخر نیز جابهجایی انجام میشود و به جایگشت نهایی ⟨5,1,3,4,2,6⟩ تبدیل میشود.