حاج مشتی


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

از زمان‌های قدیم در ایران، سه سفر زیارتی هست که باعث می‌شود لقبی پشت اسم شما اضافه شود. سفر حج لقب «حاجی»، سفر کربلا لقب «کربلایی» و سفر مشهد لقب «مشتی» را به دنبال دارد. همچنین اگر یک نفر چند سفر را رفته باشد، اولویت لقب او به ترتیب با «حاجی»، «کربلایی» و «مشتی» است. حال به شما سفرهایی که یک نفر رفته است را به صورت یک رشته ۳ تایی از کاراکترهای Y و N می‌دهیم و از شما می‌خواهیم لقب درستی که باید نسبت دهیم را چاپ کنید. (اگر هیچ سفری نرفته بود به او «آقا» می‌گوییم.)

ورودی🔗

در تنها سطر ورودی، یک رشته به طول ۳ از حروف Y (بله) و N (خیر) داده می‌شود که به‌ترتیب نشان‌دهنده‌ی تجربه‌ی سفر به «حج»، «کربلا» و «مشهد» است.

خروجی🔗

در صورتی که لقب «حاجی» است رشته‌ی Haji، «کربلایی» است رشته‌ی Karbalaee، «مشتی» است رشته‌ی Mashti و درصورتی که هیج کدام از این لقب‌ها را ندارد، Agha چاپ کنید.

مثال🔗

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

YNY
Plain text

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

Haji
Plain text

این شخص به سفر مکه رفته و به سفر کربلا نرفته و به سفر مشهد رفته. پس می‌تواند لقب‌های «حاجی» و «مشتی» را داشته باشد ولی چون لقب «حاجی» به «مشتی» اولویت دارد، خروجی حاجی می‌شود.

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

NNN
Plain text

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

Agha
Plain text

این شخص به هیچکدام از این سه سفر نرفته، پس لقب او «آقا» می‌شود.

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

NNY
Plain text

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

Mashti
Plain text

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

NYY
Plain text

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

Karbalaee
Plain text

جدول دکارتی


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

دکارت که از مختصات ابداعیش خوشش آمده تصمیم به طرح جدول دکارتی با استفاده از _ و | می‌گیرد. جدول دکارتی n×mn×m جدولی است که nn سطر و mm ستون دارد. حال از شما می‌خواهیم که جدول دکارتی را با چوب کبریت مشابه نمونه‌ها بسازید!

ورودی🔗

در تنها سطر ورودی به ترتیب دو عدد صحیح مثبت نشانگر تعداد سطرها و ستون‌ها جدول می‌آید. تضمین می‌شود که تعداد سطرها و ستون‌ها حداکثر مقدارشان ۱۰ است.

خروجی🔗

با استفاده از فاصله و چوب‌کبریت افقی _ و چوب‌کبریت عمودی | جدول دکارت را مشابه نمونه بسازید. (چاپ فاصله در انتهای خطوط مهم نیست.)

مثال🔗

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

1 1
Plain text

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

 _
| |
 _
Plain text

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

3 4
Plain text

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

 _ _ _ _
| | | | |
 _ _ _ _
| | | | |
 _ _ _ _
| | | | |
 _ _ _ _
Plain text

زوج‌های مجاور


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

در یک ردیف 2n2n نفر روی صندلی نشسته‌اند، این 2n2n نفر شامل دقیقاً nn زوج (زن و شوهر) هستند. حال می‌خواهیم یکبار دو نفر را انتخاب کنیم و از آن‌ها خواهش کنیم که جایشان را باهم عوض کنند. به طوری که بعد از آن هر کس کنار همسر خودش نشسته باشد. بررسی کنید آیا این کار شدنی است یا نه؟

ورودی🔗

در سطر اول ورودی، عدد صحیح و مثبت tt آمده است که تعداد سناریوها را نشان می‌دهد. 1t1000001 \leq t \leq 100 \, 000

در سطر اول هر سناریو عدد صحیح و مثبت nn آمده است که تعداد زوج‌ها را نشان می‌دهد. 1n1000001 \leq n \leq 100 \, 000

در سطر دوم هر سناریو، 2n2n رشته آمده که رشته‌ی iiام وضعیت نفر iiام در صف را نشان می‌دهد. هر وضعیت به فرمت یک کاراکتر و یک عدد است که کاراکتر اول W (زن) یا M (مرد) بوده و عدد بعد از آن شماره‌ی زوج را نشان می‌دهد. زوج‌ها با 11 تا nn شماره گذاری می‌شوند.

تضمین می‌شود در هر سناریو ورودی شامل همه‌ی 2n2n نفر باشد. همچنین تضمین می‌شود مجموع nnها برای همه‌ی tt سناریو حداکثر ۱۰۰،۰۰۰ باشد.

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

زیرمسئله نمره محدودیت
۱ ‌ ۳۰ n500\sum n \leq 500
۲ ۷۰ بدون محدودیت اضافی

خروجی🔗

در tt سطر در صورتی که می‌توان با یک جابه‌جایی زوج‌ها کنار هم گذاشت، YES و در غیر این‌صورت NO چاپ کنید.

مثال🔗

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

3
1
M1 W1
4
W1 M1 W4 M2 W3 M3 M4 W2
3
W1 W2 W3 M1 M2 M3
Plain text

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

YES
YES
NO
Plain text

کیک واقعی


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

استاد امروز شئ شبیه به کیک از دوستش دریافت کرده. شئ شبیه به کیک شامل nn ستون است که ستون iiام آن (با شماره‌گذاری از چپ به راست) aia_{i} لایه دارد. استاد برای این که بفهمد آیا شئ شبیه به کیک واقعا کیک است یا نه تصمیم گرفته فرایند زیر را انجام دهد:

او در هر مرحله می‌تواند kk ستون متوالی از شئ که در هر کدام از این ستون‌ها حداقل یک لایه باقی مانده را انتخاب کند و از هرکدام از این ستون‌ها یک لایه حذف کند. اگر پس از تعدادی مرحله تمام ستون‌ها خالی شدند (تمام لایه‌های هر ستون حذف شدند) استاد به این نتیجه می‌رسد که شئ شبیه به کیک واقعاً کیک بوده. در غیر این صورت متوجه می‌شود که شئ واقعاً کیک نبوده (و در نتیجه در کمال تعجب نه واقعی بوده و نه کیک).

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

ورودی🔗

ورودی شامل tt سناریو است. اطلاعات سناریوها در خطوط متمایز و متوالی به شرح زیر برای هر سناریو می‌آید. خط اول سناریو ss شامل دو عدد nsn_s و ksk_s می‌شود.

خط بعدی شامل nsn_s عدد a1,a2,...ana_{1}, a_{2}, ... a_{n} می‌شود که در آن، aia_{i} نشان دهنده‌ی تعداد لایه‌های ستون iiام از شئ است.

1t1041 \leq t \leq 10^4

1ksns1061 \leq k_{s} \leq n_{s} \leq 10^6

0ai1090 \leq a_{i} \leq 10^9

s=1tns106\sum_{s=1}^{t} n_{s} \leq 10^6

خروجی🔗

در خروجی در صورتی که شیئ واقعا کیک است عبارت Cake و در غیر این صورت عبارت Fake را چاپ کنید.

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

زیرمسئله نمره محدودیت
۱ ۳۰ s=1tns3000\sum_{s=1}^{t} n_{s} \leq 3000
۲ ۷۰ s=1tns106\sum_{s=1}^{t} n_{s} \leq 10^6

مثال🔗

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

3
7 3
1 2 3 4 3 2 1
7 4
1 2 3 4 3 2 1
6 2
3 4 1 0 1 2
Plain text

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

Fake
Cake
Fake
Plain text

توضیحات نمونه:

در سناریوی دوم استاد می‌تواند با انجام دادن عملیات‌های زیر به وضعیتی برسد که تمام ستون‌ها خالی‌اند:

  1. از ستون سوم تا ششم یک لایه کم کند تا شئ به صورت 1 2 2 3 2 1 1 دراید.
  2. از ستون دوم تا پنجم یک لایه کم کند تا شئ به صورت 1 1 1 2 1 1 1 دراید.
  3. از ستون چهارم تا هفتم یک لایه کم کند تا شئ به صورت 1 1 1 1 0 0 0 دراید.
  4. از ستون اول تا چهارم یک لایه کم کند تا شئ به صورت 0 0 0 0 0 0 0 دراید.

به راحتی می‌توان دید که در سناریوهای اول و سوم استاد با هیچ روشی نمی‌تواند به وضعیتی که همه‌ی ستون‌ها خالی‌اند برسد.

مار و پله


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

استاد که اخیرا زمان زیادی را تنهایی سپری می‌کند تصمیم گرفته تنهایی مار و پله بازی کند.

بازی از nn خانه با شماره‌های 11 تا nn تشکیل شده. همچنین در صفحه‌ی بازی ll پله و ss مار قرار دارند. پله‌ی iiام بین خانه‌های aia_{i} و bib_{i} (ai<bi)(a_{i} < b_{i}) قرار دارد و اگر استاد در لحظه‌ای از بازی در خانه‌ی aia_{i} قرار بگیرد باید با استفاده از پله به خانه‌ی bib_{i} برود. مار iiام نیز بین خانه‌های cic_{i} و did_{i} (ci>di)(c_{i} > d_{i}) قرار دارد و اگر استاد در لحظه‌ای از بازی در خانه‌ی cic_{i} قرار بگیرد توسط مار نیش زده می‌شود و به خانه‌ی did_{i} می‌رود.

او در هر لحظه از بازی می‌تواند یک عدد مثل kk بین 11 تا 66 انتخاب کند و kk خانه از خانه‌ی فعلیَش جلوتر برود (به شرطی که مقصد حدکثر nn باشد). بازی از خانه ۱ شروع شده و در خانه nn خاتمه می‌یابد.

از آن‌جایی که تنهایی بازی کردن چندان مفرح نیست،‌ استاد تصمیم گرفته به جای بازی کردن کمینه‌ی تعداد مراحلی که نیاز دارد تا از خانه‌ی ۱ به خانه‌ی nn برسد را محاسبه کند. به او در این کار کمک کنید.

توجه کنید شرکت ساخت مار و پله بازی رو طوری طراحی کرده که حداقل یک راه برای رسیدن به خانه آخر وجود داشته باشد و همچنین برسی دقیق محدودیت‌های داده شده در بخش ورودی حائز اهمیت است.

ورودی🔗

ورودی شامل tt سناریو است. اطلاعات سناریوها در خطوط متمایز و متوالی به شرح زیر برای هر سناریو می‌آید. خط اول سناریو شماره uu شامل سه عدد nun_u، lul_u و sus_u می‌شود که به ترتیب تعداد خانه‌های بازی،‌ پله‌ها و مارها را نشان می‌دهند.

خط iiام خط از lul_u خط بعدی شامل دو عدد aia_{i} و bib_{i} می‌شود که به ترتیب نشان دهنده‌ی خانه‌های ابتدایی و انتهایی iiامین پله‌اند.

نهایتا iiامین خط از sus_u خط بعدی شامل دو عدد cic_{i} و did_{i} می‌شود که به ترتیب نشان دهنده‌ی خانه‌های سر و دم iiامین ماراند. 1t100001 \le t \le 10\,000 2nu2000002 \le n_u \le 200\, 000 u=1tnu200000\sum_{u=1}^t n_u \le 200 \, 000 0lu+sunu2 0 \le l_u + s_u \le n_u-2 2ai<binu2 \le a_i < b_i \le n_u 1di<ci<nu1 \le d_i < c_i < n_u aiaj,aicj,cicj(ij)a_i \ne a_j, a_i \ne c_j, c_i \ne c_j \quad (i \ne j)

خروجی🔗

برای هر سناریو در خروجی کمینه‌ی تعداد مراحلی که استاد نیاز دارد تا از خانه‌ی 11 به خانه‌ی nn برسد را در خطی جداگانه چاپ کنید.

مثال🔗

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

4
100 0 0
100 2 2
7 70
8 80
82 54
99 1
30 2 0
8 23
7 18
100 1 1
5 99
99 4
Plain text

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

17
6
3
17
Plain text

توضیحات نمونه:

در سناریوی اول یکی از بهترین روش‌هایی که استاد می‌تواند پیش بگیرد این است که در هر مرحله بیشترین میزانی که می‌تواند به جلو برود. با این روش استاد پس از 1717 مرحله به خانه‌ی 100100 می‌رسد.

در سناریوی دوم یکی از بهترین روش‌های استاد این است که:

  • در مرحله‌ی اول 11 خانه به جلو برود تا به خانه‌ی 22 برسد.
  • در مرحله‌ی دوم 66 خانه به جلو برود تا به خانه‌ی 88 برسد و بعد توسط نردبان به خانه‌ی 8080 برود.
  • نهایتا پس از مراحل بالا در هر مرحله بیشترین میزانی که می‌تواند به جلو برود.

در سناریوی آخر نیز یکی از بهترین روش‌ها این است که در هر مرحله بیشترین میزانی که می‌تواند به جلو برود. دقت کنید که در این سناریو اگر استاد در خانه‌ی 55 قرار بگیرد باید با استفاده از پله به خانه‌ی 9999 برود. سپس در آن خانه توسط مار نیش زده می‌شود و به خانه‌ی 44 برمی‌گردد.

مینومینومینو...مینو


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

به تعدادی مربع واحد که شکلی همبند ایجاد کنند، (یعنی با شروع از هر مربع بتوان با تعدادی بار جابه‌جا شدن بین مربع‌های مجاور ضلعی به هر مربع دیگر رسید) یک چندمینو می‌گوییم. برای مثال تمام 66-مینوهای ممکن را می‌توانید در شکل زیر (با در نظر گرفتن دوران‌ها) ببینید:

۶-مینوها

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

دو روش متفاوت شمرده می‌شود اگر در یک روش دوخانه توسط یک چندمینو پوشانده شود و در روش دیگر دو خانه در دو چندمینو قرار داشته باشند.

ورودی🔗

در خط اول ورودی عدد tt، تعداد پرسش‌های استاد می‌آید. سپس در tt خط بعد در هر خط یک عدد صحیح مانند nn، می‌آید که نشان‌دهنده تعداد ستون‌های جدول مورد پرسش استاد است.

خروجی🔗

برای هر یک از پرسش‌های استاد به‌ترتیب پاسخ را به پیمانه‌ی 109+710^9 + 7 چاپ کنید.

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

زیرمسئله نمره محدودیت
۱ ۶۰ 1t105,1n1061 \leq t \leq 10^5 , 1\leq n \leq 10^6
۲ ۴۰ 1t105,1n10181 \leq t \leq 10^5 , 1 \leq n \leq 10^{18}

مثال🔗

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

4
1
2
962398
832984703297404324
Plain text

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

2
12
290395550
469838046
Plain text

به یاد استاد


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

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

سفره‌ی استاد به شکل یک مستطیل nn در mm است که در هر خانه از آن یک شکلات قرار دارد. هر یک از شکلات‌ها از یکی از انواع 11 تا mm است و از آن‌جایی که استاد طرفدار مساوات است از هر نوع شکلات دقیقا nnتا در سفره قرار داده.

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

استاد که نمی‌خواهد وضعیت سفره زیادی تغییر کند، فقط می‌تواند ترتیب شکلات‌های درون هر ستون را تغییر دهد. به بیان دیگر برای هر ستون استاد می‌تواند شکلات‌های آن ستون را به هر ترتیب دل‌خواه در همان ستون بچیند.

از آن‌جایی که استاد،‌ استاد است توانسته اثبات کند رسیدن به یک وضعیت مطلوب همواره ممکن است. اما به علت خستگی خودش نتوانسته یک وضعیت مطلوب پیدا کند. بنابراین از شما خواسته تا با ورودی گرفتن اطلاعات سفره،‌ یک وضعیت نهایی که باب میل او باشد را چاپ کنید. توجه کنید که در صورت وجود چند وضعیت مطلوب می‌توانید هر یک را به دل‌خواه چاپ کنید.

ورودی🔗

خط اول ورودی شامل دو عدد nn و mm که به ترتیب برابر تعداد سطرها و تعداد ستون‌های جدول اند می‌شود. در خط ii-ام از nn خط بعدی mm عدد ai,1,ai,2,...ai,ma_{i,1}, a_{i,2}, ... a_{i,m} داده می‌شود که در آن ai,ja_{i,j} نشان‌دهنده‌ی نوع شکلات درون خانه‌ی (i,j)(i,j) سفره است.

1n,m2001 \leq n,m \leq 200 1ai,jm1 \leq a_{i,j} \leq m

خروجی🔗

خروجی باید شامل یک وضعیت نهایی مطلوب از سفره باشد.

مثال🔗

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

3 3
1 1 3
1 2 3
3 2 2
Plain text

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

1 2 3
3 1 2
1 2 3
Plain text

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

2 4
1 4 4 3
1 3 2 2
Plain text

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

1 3 4 2
1 4 2 3
Plain text