اتللو


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

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

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

زمانی که هیچ یک از بازیکنان حرکتی نداشته باشند؛ بازی به پایان می‌رسد و بازیکنی که تعداد مهره‌های بیشتری روی صفحه داشته باشد؛ برنده است.

توضیح تصویر

نکته ۱: تنها مهره‌هایی را می‌توان تصاحب کرد که بین مهره‌ی جدید و مهره‌های قبلی محاصره شده باشند یعنی مهره‌هایی که در جریان بازی در بین مهره‌های ناهم‌رنگ قرار می‌گیرند؛ تغییر رنگ نمی‌دهند.

نکته ۲: در صورتی یکی از بازیکنان در نوبت خود، مکانی برای محاصره حریف نداشته باشد و نتواند حتی یک مهره او را محاصره کند؛ نوبت خود را از دست می‌دهد و حرکت به حریف واگذار می‌شود تا زمانی که امکان محاصره برایش ایجاد شود.

ورودی🔗

  1. در اولین خط ورودی nn (مجموع تعداد حرکت‌های بازیکن اول و دوم) وارد می‌شود.

  2. در خط دوم، حرکت بازیکنان با یک فاصله از هم وارد می‌شود. هر حرکت شامل رشته‌ی دو کاراکتری است که کاراکتر اول یکی از حروف AA تا HH و کاراکتر دوم عددی بین ۱ تا ۸ خواهد بود. (تضمین می‌شود که تمامی حرکت‌ها در ورودی مجاز هستند.)

1n601 \le n \le 60

خروجی🔗

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

مثال🔗

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

3
D3 E3 F5
Plain text

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

6 1
Plain text
توضیحات نمونه‌ی ۱
  • حرکت اول: بازیکن اول مهره تیره را در خانه‌ی D3D3 قرار می‌دهد و مهره‌ی خانه‌ی D4D4 را محاصره می‌کند و مهره‌ی محاصره شده تیره می‌شود.
  • حرکت دوم: بازیکن دوم مهره روشن را در خانه‌ی E3E3 قرار می‌دهد و مهره‌ی خانه‌ی E4E4 را محاصره می‌کند و مهره‌ی محاصره شده روشن می‌شود.
  • حرکت سوم: بازیکن اول مهره تیره را در خانه‌ی F5F5 قرار می‌دهد و مهره‌های خانه‌ی E4E4 و E5E5 را محاصره می‌کند و مهره‌های محاصره شده تیره می‌شوند.

در تنها خط خروجی ابتدا امتیاز بازیکن اول (۶ مهره‌ی تیره) و سپس امتیاز بازیکن دوم (۱ مهره‌ی روشن) وارد می‌شود.

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

4
F5 F4 C3 C4
Plain text

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

4 4
Plain text
توضیحات نمونه‌ی ۲
  • حرکت اول: بازیکن اول مهره تیره را در خانه‌ی F5F5 قرار می‌دهد و مهره‌ی خانه‌ی E5E5 را محاصره می‌کند و مهره‌ی محاصره شده تیره می‌شود.
  • حرکت دوم: بازیکن دوم مهره روشن را در خانه‌ی F4F4 قرار می‌دهد و مهره‌ی خانه‌ی E4E4 را محاصره می‌کند و مهره‌ی محاصره شده روشن می‌شود.
  • حرکت سوم: بازیکن اول مهره تیره را در خانه‌ی C3C3 قرار می‌دهد و مهره‌های خانه‌ی D4D4 را محاصره می‌کند و مهره‌ی محاصره شده تیره می‌شود.
  • حرکت چهارم: بازیکن دوم مهره تیره را در خانه‌ی C4C4 قرار می‌دهد و مهره‌های خانه‌ی D4D4 را محاصره می‌کند و مهره‌ی محاصره شده روشن می‌شود.

در تنها خط خروجی ابتدا امتیاز بازیکن اول (۴ مهره‌ی تیره) و سپس امتیاز بازیکن دوم (۴ مهره‌ی روشن) وارد می‌شود.