کاسه و نخود


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

دیدن، باور کردن است اما آیا حقیقت است؟!

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

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

ورودی🔗

در سطر اول ورودی، عدد صحیح nn که تعداد جابه‌جایی‌ها است می‌آید. 1n1000 1 \le n \le 1000 سپس در nn سطر بعدی، مکان دو کاسه‌ای که جابه‌جا می‌شوند به شما داده می‌شود.

1ab3 1 \le a \neq b \le 3

خروجی🔗

در تنها سطر خروجی شماره‌ی مکان کاسه‌ای که نخود زیر آن است را خروجی دهید.

مثال🔗

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

4
1 2
2 3
3 1
1 2
Plain text

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

2
Plain text

در مرحله اول نخود زیر کاسه‌ی اول قرار دارد:

  • با جابه‌جایی کاسه مکان اول و دوم، نخود زیر کاسه‌ی مکان دوم می‌رود.
  • با جابه‌جایی کاسه مکان دوم و سوم، نخود زیر کاسه‌ی مکان سوم می‌رود.
  • با جابه‌جایی کاسه مکان سوم و اول، نخود زیر کاسه‌ی مکان اول می‌رود.
  • با جابه‌جایی کاسه مکان اول و دوم، نخود زیر کاسه‌ی مکان دوم می‌رود.

بنابراین بعد از پایان تردستی، نخود زیر کاسه‌ی مکان دوم است.

دوقلوهای افسانه‌ای و خرید گردنبند


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

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

به ازای حالت‌های مختلف بگویید دو گردنبند یکی هستند یا نه؟

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

ورودی🔗

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

1t21844 1 \le t \le 21 \, 844

طول هر گردنبند حداکثر ۷ و از حروف کوچک انگلیسی تشکیل شده است.

خروجی🔗

به ترتیب برای هر جفتی که نشان دهنده دو گردنبند یکسان هستند، عبارت YES و در غیر این‌صورت عبارت NO را خروجی دهید. به بزرگ بودن حروف خروجی خود توجه کنید.

مثال🔗

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

6
ab abab
abc cba
gcd lcm
abc bca
lca lcs
abacb abcab
Plain text

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

NO
YES
NO
YES
NO
YES
Plain text
  • در جفت اول چون طول دو گردنبند یکی نیست، آن‌ها با هم برابر نیستند.
  • در جفت دوم با برعکس کردن گردن بند دوم به گردنبندها برابر می‌شوند.
  • در جفت سوم g در گردنبند اول هست ولی در دومی وجود ندارد.
  • در جفت چهارم با یک واحد شیفت دادن به چپ گردنبند اول به گردنبند دوم می‌رسیم.
  • در جفت پنجم a در گردنبند اول هست ولی در دومی نیست.
  • در جفت ششم با یک بار برعکس کردن رشته‌ی اول، و یک واحد شیفت دادن به راست، به رشته‌ی دوم می‌رسیم.

مجموع اختلاف مجاور


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

تربچه علاقه زیادی به دنباله‌های خوب دارد. یک دنباله به طول nn را خوب می‌گوییم اگر هر kk عدد متوالی از آن را که نگاه می‌کنیم، اعداد 11 تا kk دقیقاً یکبار در آن ظاهر شده باشند. به علاوه، هر دنباله خوب یک ارزشی دارد. ارزش یک دنباله برابر مجموع قدرمطلق اختلاف هر دو عدد مجاور آن است.

برای مثال اگر دنباله خوب به طول n=7n = 7 و k=4k = 4 را در نظر بگیریم که به صورت 1,2,3,4,1,2,31, 2, 3, 4, 1, 2, 3 است، ارزش آن برابر 12+23+34+41+12+23=8|1 - 2| + |2 - 3| + |3 - 4| + |4 - 1| + |1 - 2| + |2 - 3| = 8 می‌شود.

حال تربچه از شما می‌خواهد که با داشتن مقدار kk و nn، مقدار بیشترین ارزشی که یک دنباله خوب می‌تواند داشته باشد را به دست آورید.

ورودی🔗

در تنها سطر ورودی، به ترتیب دو عدد صحیح kk و nn داده می‌شوند.

1k81 \le k \le 8 1n1000001 \le n \le 100\, 000 knk \leq n

زیرمسئله ‌ محدودیت‌ها امتیاز
۱ 1k51 \le k \le 5 و 1n10001 \le n \le 1000 ۴۰
۲ بدون محدودیت اضافه ۶۰

خروجی🔗

بیشترین ارزشی که می‌توان با ساخت یک دنباله به دست آورید را نمایش دهید.

مثال🔗

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

4 4
Plain text

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

7
Plain text

یک دنباله که عدد ۷ را می‌سازد دنباله زیر است: 3,1,4,23, 1, 4, 2

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

2 4
Plain text

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

3
Plain text

ترب و توپ و تربچه


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

ترب و بچه‌اش تربچه می‌خواهند توپ بازی کنند ولی نه بازی‌های سطحی که انسان‌ها انجام می‌دهند! پیش روی آن‌ها در ابتدای هر بازی تعدادی دسته قرار دارد و در هر دسته تعدادی (بزرگتر از ۱) توپ قرار دارد. هر کس در نوبت خود می‌تواند دقیقاً یکی از عملیات‌های زیر را روی یک دسته که حداقل ۲ توپ داشته باشد انجام دهد و هر کس که نتواند عملی انجام دهد، بازنده بازی می‌شود. توجه کنید تربچه چون کوچک‌تر است همیشه آغازکننده بازی هست.

  1. یک دسته با aa توپ را به دو دسته با 11 و a1a-1 توپ تقسیم کند.
  2. یک دسته با aa توپ را به دو دسته با a2 \lfloor \frac{a}{2} \rfloor و a2 \lceil \frac{a}{2} \rceil توپ تقسیم کند.
  3. یک دسته با aa توپ را به دو دسته با a \lfloor \sqrt a \rfloor و aa a- \lfloor \sqrt a \rfloor توپ تقسیم کند.

برای اطلاع از تعریف عبارت‌های a \lfloor a \rfloor و a \lceil a \rceil می‌توانید لینک کف و سقف را مطالعه کنید.

ورودی🔗

در سطر اول ورودی، عدد صحیح tt که نشان دهنده‌ی تعداد بازی‌های انجام شده بین ترب و تربچه می‌آید. 1t1001 \leq t \leq 100

سپس اطلاعات هر بازی می‌آید. در سطر اول اطلاعات هر بازی، kk یا همان تعداد دسته‌ها می‌آید و سپس در سطر بعد، kk عدد صحیح می‌آید که ‌iiـمین ‌آن‌ها cic_i نام دارد و نشان دهنده تعداد توپ‌ها در دسته iiام است. 1k100001 \le k \le 10 \, 000 2ci1000002 \le c_i \le 100 \, 000

خروجی🔗

به ازای هر بازی اگر ترب با بازی بهینه برنده می‌شد Torob و در صورت برد تربچه با بازی بهینه Torob Che را خروجی دهید.

مثال🔗

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

4
1
6
2
3 3
1
9
3
2 2 2
Plain text

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

Torob Che
Torob
Torob
Torob Che
Plain text

جدول بازی


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

ترب و تربچه هر کدام یک جدول n×nn \times n دارند که در هر خانه‌ی آن یکی از اعداد 11 تا n2n^2 نوشته شده به طوری که هر عدد دقیقاً یکبار در این جدول‌ها ظاهر شده باشند.

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

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

حال تربچه می‌خواهد بداند آیا می‌تواند جدولش را مشابه جدول ترب کند یا نه.

ورودی🔗

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

در سطر اول هر سناریو، عدد صحیح و مثبت nn آمده که اندازه‌ی جدول‌ها را نشان می‌دهد. 2n502 \leq n \leq 50

در nn سطر بعدی هر سناریو، در هر سطر nn عدد آمده که عدد ظاهر شده در سطر iiام ستون jjام، عدد ai,ja_{i, j} از جدول تربچه است.

در nn سطر بعدی، به طور مشابه جدول اعداد ترب ظاهر می‌شود. تضمین می‌شود که در هر دو جدول، اعداد 11 تا n2n^2 دقیقاً یکبار ظاهر شوند.

خروجی🔗

خروجی tt سطر دارد و هر سطر جواب یک سناریو است. اگر در یک سناریو جدول تربچه قابل تبدیل به جدول ترب بود، YES و در غیر این صورت NO چاپ کنید.

توجه کنید سیستم داوری نسبت به بزرگ و کوچک بودن حروف حساس است.

مثال🔗

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

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

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

YES
NO
NO
Plain text

قاب چوبی


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

در یک انباری nn تکه چوب داریم. طول چوب iiام برابر lil_i است. حال می‌خواهیم kk تکه از این چوب‌ها را برداریم به طوری که بتوان با آن‌ها یک قاب به شکل kk ضلعی ساخت.

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

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

تضمین میشود که مقدار kk کوچکتر مساوی nn است

ورودی🔗

در سطر اول ورودی، به ترتیب دو عدد صحیح و مثبت nn و kk آمده است. 3n603 \leq n \leq 60 3k83 \leq k \leq 8

در سطر دوم ورودی، nn عدد صحیح که با یک فاصله از هم جدا شده‌اند و عدد iiام آن همان lil_i یعنی طول چوب iiام است. 1li601 \leq l_i \leq 60

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

زیرمسئله ‌ محدودیت‌ها امتیاز
۱ 3k53 \le k \le 5 و 3n203 \le n \le 20 ۴۰
۲ بدون محدودیت اضافه ۶۰

خروجی🔗

در تنها سطر خروجی، تعداد روش‌های انتخاب کردن چوب برای ساخت قاب را چاپ کنید.

مثال🔗

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

5 3
1 1 1 1 1
Plain text

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

10
Plain text

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

6 4
1 2 4 8 16 32
Plain text

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

0
Plain text

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

5 5
1 2 3 4 5 
Plain text

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

1
Plain text

دو رخ دو شاه


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

ترب و تربچه مشغول بازی کردن شطرنج هستند. بازی شطرنج آن‌ها روی یک جدول n×nn \times n انجام می‌شود. ترب با رنگ سفید و تربچه با رنگ سیاه بازی می‌کند. ترب سه مهره دارد، دو مهره‌ی رخ و یک مهره‌ی شاه دارد. تربچه یک مهره‌ی شاه دارد.

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

قوانین بازی شطرنج🔗

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

مهره‌ی رخ می‌تواند به همه‌ی خانه‌های هم سطر و یا هم ستونش که هیچ مهره‌ای در بازه‌ی بین آن‌ها نیست، حرکت کند (نمی‌تواند از روی دیگر مهره‌ها بپرد).

اگر در یک وضعیت مهره‌ی شاه بازیکنی مورد تهدید یک بازیکن دیگر باشد، باید در حرکت بعدی، خودش را از آن وضعیت خارج کند و نمی‌تواند کار دیگری انجام دهد.

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

ورودی🔗

در سطر اول ورودی عدد صحیح و مثبت nn آمده که ابعاد صفحه‌ی شطرنج را نشان می‌دهد. 3n43 \leq n \leq 4

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

در هر سناریو یک جدول n×nn \times n از کاراکترها بدون فاصله داده می‌شود. در واقع هر جدول nn رشته به طول nn است که کاراکترهای آن K و R و . و k است که به ترتیب مهره‌ی شاه سفید، رخ سفید، خانه خالی و شاه سیاه را نشان می‌دهد.

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

تضمین می‌شود در وضعیت اولیه، شاه کسی در معرض تهدید نیست و فرض کنید بعد از این وضعیت نوبت رنگ سفید است.

محدودیت‌ها🔗

زیرمسئله ‌ محدودیت‌ها امتیاز
۱ n=3n = 3 ۵۰
۲ بدون محدودیت اضافه ۵۰

خروجی🔗

خروجی tt سطر دارد، در هر سطر با فرض اینکه هر دو بازیکن بهترین بازی خود را ارائه دهند، کمترین تعداد حرکت برای پیروزی را با CheckMate و سپس تعداد مراحل را چاپ کنید و یا عدم امکان پیروزی و همان تساوی یا Draw را چاپ کنید (به نمونه خروجی توجه کنید).

مثال🔗

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

4
2
.R.K
..R.
....
k...
...K
..R.
.k..
R...
Plain text

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

CheckMate 1
CheckMate 5
Plain text
توضیح نمونه ۱

توضیح وضعیت اول

.R.K
R...
....
k...
Plain text

توضیح وضعیت دوم:

...K
....
.k..
R.R.

...K
.k..
....
R.R.

....
.k.K
....
R.R.

.k..
...K
....
R.R.

.k..
...K
....
RR..
Plain text

شهر اعداد: انتخاب خود


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

مردم شهر دست‌به‌دست هم می‌دهند و یک صف بلند درست می‌کنند. هر شهروند یک عدد بین ۰ تا MM برای خودش انتخاب کرده است. عدد شهروند iiام برابر aia_i است.

حال از روی اعداد شهروندان اعداد t1,t2,,tnk+1t_1, t_2, \dots, t_{n-k+1} را به صورت زیر می‌سازیم.

aiai+1ai+k1=ti a_i \oplus a_{i+1} \oplus \dots \oplus a_{i+k-1} = t_i

منظور از \oplus عملگر xorxor است.

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

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

ورودی🔗

در سطر اول به ترتیب سه عدد nn و kk و MM آمده است. 1kn50001 \le k \le n \le 5000

سپس در سطر بعد nk+1n-k+1 عدد می‌آید که عدد iiـم نشانگر tit_i است.

0M,ti50000 \le M, t_i \le 5000

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

زیرمسئله ‌ محدودیت‌ها امتیاز
۱ 1k31 \le k \le 3 و 1kn1001\le k \le n \le 100 و 0M,ti1000 \le M, t_i \le 100 ۲۰
۲ 1kn2001 \le k \le n \le 200 و 0M,ti1000 \le M, t_i \le 100 ۵۰
۳ بدون محدودیت اضافه ۳۰

خروجی🔗

در تنها سطر خروجی یک عدد نامنفی که پاسخ مساله به پیمانه 109+710^9+7 است را خروجی دهید.

مثال🔗

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

4 2 0
0 1 1
Plain text

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

0
Plain text

با توجه به اینکه M=0M = 0 است، پس دنباله‌ی aa تماماً ۰ است و نمی‌تواند دنباله‌ی tt به صورت گفته شده باشد. بنابراین پاسخ مسئله برابر ۰ می‌شود.

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

3 3 2
1
Plain text

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

7
Plain text
توضیح نمونه ۲

دنباله‌های مطلوب:

  • 0,0,10, 0, 1
  • 0,1,00, 1, 0
  • 1,0,01, 0, 0
  • 1,1,11, 1, 1
  • 1,2,21, 2, 2
  • 2,1,22, 1, 2
  • 2,2,12, 2, 1

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

25 23 89
22 37 41
Plain text

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

809594952
Plain text