جابجایی عریض


  • محدودیت زمان: ۵ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

به شما جایگشت p1,p2,...,pnp_1,p_2,...,p_n از اعداد ۱ تا nn داده شده است. شما می‌توانید عملیات زیر را به هر تعداد دلخواهی(حتی صفر) روی جایگشت انجام دهید.

  • دو عدد 1i<jn1\leq i < j \leq n انتخاب کنید که pipj=1\mid p_i-p_j \mid = 1 و KjiK \leq j - i.

بین تمام جایگشت‌هایی که از جایگشت اولیه می‌توان به آنها رسید کوچک‌ترین آنها از لحاظ لکسیکوگرافیکالی را پیدا کنید.

ورودی🔗

در خط اول ورودی دو عدد nn و KK به ترتیب داده شده‌اند. در خط دوم ورودی جایگشت p1,p2,...,pnp_1,p_2,...,p_n داده شده است. 1n500 0001\leq n \leq 500\ 000 1Kn11\leq K \leq n - 1

خروجی🔗

کوچکترین جایگشت از لحاظ لکسیکوگرافیکالی را در nn خط خروجی دهید.

مثال🔗

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

4 2
4 2 3 1
Plain text

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

2
1
4
3
Plain text

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

5 1
5 4 3 2 1
Plain text

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

1
2
3
4
5
Plain text

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

8 3
4 5 7 8 3 1 2 6
Plain text

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

1
2
6
7
5
3
4
8
Plain text

تیم‌بندی کج


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

افراد ۱ تا nn تیم‌بندی شده‌اند و در یک صف قرار گرفته‌اند. به یک شیوه تیم بندی یک دنباله a1,a2,...,ana_1,a_2,...,a_n نسبت میدهیم به این شکل که به ترتیب عناصر دنباله را میسازیم:

  • در مرحله ii ام اگر فرد با شماره ii با فرد شماره jj هم‌تیمی بود به شکلی که i>ji>j aia_i را برابر aja_j قرار میدهیم.
  • در غیر این صورت aia_i را برابر مینیمم عدد طبیعی مانند xx قرار می‌دهیم که xx برابر هیچ کدام از اعداد a1,a2,...,ai1a_1,a_2,...,a_{i-1} نباشد.

یک دنباله a1,a2,...,ana_1,a_2,...,a_n به شما داده شده است که تضمین می‌شود تیم‌بندی‌ای وجود داره که دنباله‌اش برابر آن شود. تعداد تیم‌بندی‌‌هایی را بشمارید که دنباله‌هایشان از لحاظ لکسیکوگرافیکالی کمتر یا برابر دنباله aa باشد. چون ممکن است این عدد خیلی بزرگ باشد، باقی‌مانده آن را به 1 000 0071\ 000\ 007 حساب کنید.

ورودی🔗

در خط اول ورودی یک عدد nn داده شده است. در خط دوم دنباله a1,a2,...,ana_1,a_2,...,a_n داده شده است. 1n10 0001 \leq n \leq 10\ 000

خروجی🔗

باقی‌مانده تعداد تیم‌بندی‌های با شرایط گفته شده بر 1 000 0071\ 000\ 007 را در یک خط چاپ کنید.

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

زیرمسئله نمره محدودیت
۱ ۳۰ n14n \le 14
۲ ۲۰ n100n \le 100
۳ ۲۰ n1 000n \le 1\ 000
۴ ۳۰ بدون محدودیت اضافی

مثال🔗

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

3
1 2 2
Plain text

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

4
Plain text

دنباله‌های معتبر:

  • 1111 1 1
  • 1121 1 2
  • 1211 2 1
  • 1221 2 2
  • 1231 2 3

بازی‌بازی بازی


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

دور دایره nn عدد چیده شده‌اند که مقدار ii امین عدد برابر aia_i است.

دو نفر روی این دایره بازی میکنند به این شکل که در مرحله اول نفر اول یک خانه را انتخاب میکند و در مرحله دوم نفر دوم یک خانه بجز خانه نفر اول را انتخاب میکند.

سپس در مراحل بعد با شروع از نفر اول، هرکس در نوبتش یک خانه که مجاور حداقل یکی از خانه‌های انتخاب شده‌اش است و تا به حال انتخاب نشده را انتخاب میکند.

بازی زمانی تمام میشود که تمام خانه ها انتخاب شده باشند.

نفر اول میخواهد جمع خانه‌هایی که در نهایت انتخاب کرده، بیشینه شود اما نفر دوم میخواهد این مقدار کمینه شود.

اگر هر دو به بهترین شکل بازی کنند، جمع خانه‌هایی که نفر اول انتخاب میکند چند است؟

ورودی🔗

در خط اول ورودی یک عدد nn داده شده است. در خط دوم دنباله a1,a2,...,ana_1,a_2,...,a_n داده شده است. 2n500 0002 \leq n \leq 500\ 000 1ai2 0001 \leq a_i \leq 2\ 000

خروجی🔗

جمع خانه‌هایی که نفر اول انتخاب میکند را خروجی دهید.

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

زیرمسئله نمره محدودیت
۱ ۲۰ n300n \le 300
۲ ۲۰ n5 000n \le 5\ 000
۳ ۲۰ تضمین می‌شود که بهترین حرکت اول نفر اول این است که خانه یک را انتخاب کند.
۴ ۴۰ بدون محدودیت اضافی

مثال🔗

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

4
7 6 8 4
Plain text

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

13
Plain text

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

5
1 1 1 1 1
Plain text

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

3
Plain text