سلام دوست عزیز😃👋

لینک‌های مفید برای شرکت در مسابقه

موفق باشید 😉✌

گاو‌صندوق


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت
  • آزمون عملی دوم فاینال سی و دومین دوره المپیاد کامپیوتر ایران

علی‌جان گاوصندوق هوشمندی دارد که رمز آن را فراموش کرده است. او می‌داند رمز گاوصندوقش جایگشتی از اعداد 11 تا nn می‌باشد. علی‌جان از گاوصندوق هوشمند راهنمایی می‌گیرد تا رمز را پیدا کند. اگر رمز گاوصندوق جایگشت s=s1,s2,,sn s = \langle s_1, s_2, \cdots, s_n \rangle\ باشد، ابتدا عملیات زیر را انجام می‌دهد، و سپس جایگشت نهایی را به علی‌جان می‌دهد.

شبه‌کد

علی‌جان مقدار kk و جایگشت بعد از اجرا شدن کد بالا روی آن را دارد. او می‌خواهد بداند چند دنباله مختلف ممکن است رمز گاوصندوقش باشد.

ورودی🔗

در خط اول ورودی دو عدد طبیعی nn و سپس kk به‌ترتیب می‌آیند.

در خط دوم ورودی nn عدد s1,s2,,sn s_1, s_2, \cdots, s_n\ به‌ترتیب می‌آیند.

خروجی🔗

در تنها خط خروجی، تعداد دنباله‌های مختلفی که می‌توانند رمز گاوصندوق باشند را چاپ کنید. از آنجایی که این مقدار ممکن است بزرگ باشد، باقی‌مانده تقسیم آن بر 109+710^9+7 را چاپ کنید.

محدودیت‌ها🔗

2n,k2000002 \leq n, k \leq 200 \, 000 1sin1 \leq s_i \leq n

  • شرط sisjs_i \neq s_j به ازای تمامی iji \neq j برقرار می‌باشد.

زیرمسئله‌ها🔗

زیرمسئله نمره محدودیت
۱ ۱۰ n15n \leq 15
۲ ۲۱ k=1k = 1
۳ ۲۹ k=2k = 2 و n2000n \leq 2000
۴ ۱۷ k50 k \leq 50
۵ ۲۳ بدون محدودیت اضافی

مثال🔗

ورودی نمونه ۱🔗

4 1
1 2 3 4
Plain text

خروجی نمونه ۱🔗

8
Plain text

ورودی نمونه ۲🔗

6 2
5 1 3 4 2 6
Plain text

خروجی نمونه ۲🔗

2
Plain text

جایگشت 3,5,1,6,4,2 \langle 3, 5, 1, 6, 4, 2 \rangle\ یکی از جایگشت‌هایی است که ممکن است رمز گاوصندوق دوم باشد. عملیات‌هایی که روی این جایگشت انجام می‌شود:

  1. در مرحله اول، s1>min(s2,s3) s_1 > \min(s_2, s_3)\ می‌باشد، پس جابه‌جایی انجام می‌دهد و به جایگشت 5,3,1,6,4,2\langle 5, 3, 1, 6, 4, 2 \rangle تبدیل می‌شود.
  2. در مرحله دوم، s2>min(s3,s4)s_2 > \min(s_3, s_4) می‌باشد، پس جابه‌جایی انجام می‌دهد و به جایگشت 5,1,3,6,4,2\langle 5, 1, 3, 6, 4, 2 \rangle تبدیل می‌شود.
  3. در این مرحله جابه‌جایی انجام نمی‌دهد.
  4. در این مرحله مجددا جابه‌جایی انجام می‌دهد و به جایگشت 5,1,3,4,6,2\langle 5, 1, 3, 4, 6, 2 \rangle تبدیل می‌شود.
  5. در مرحله آخر نیز جابه‌جایی انجام می‌شود و به جایگشت نهایی 5,1,3,4,2,6\langle 5, 1, 3, 4, 2, 6 \rangle تبدیل می‌شود.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.