کارمند منظم


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

خسرو که یکی از کارمندان منظم شرکت رهنما است، هر روز صبح نیم ساعت قبل از شروع ساعت کاری در شرکت حاضر شده و تا شروع ساعت کاری minesweeperminesweeper بازی می‌کند، اما اغلب اوقات بازی وی نیمه تمام می‌ماند.

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

** هر خانه از یک جدول minesweeperminesweeper : **

  • یا شامل یک بمب است که در این صورت با کاراکتر ′∗′ نمایش داده می‌شود.

  • یا شامل بمب نیست و تعداد ناصفری از خانه‌های مجاور رأسی آن (۸ خانه همسایه‌اش) شامل بمب‌اند که در این صورت با تعداد بمب های خانه‌های مجاور رأسی‌اش نشان داده می‌شود.

  • یا نه خود شامل بمب است نه خانه های مجاور رأسی‌اش که در این صورت با کاراکتر ′.′ (نقطه) نمایش داده می‌شود.

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

*دقت کنید که شما فقط باید خانه‌های مجهول جدول را تکمیل کنید (تبدیل به ′.′ یا ′∗′ و یا عددی بین ۱ تا ۸ ) و باقی خانه‌ها را بدون تغییر رها کنید. دقت کنید که باید تمام خانه‌های مجهول را پر کنید. *

*برای آشنایی بیشتر با بازی minesweeper می‌توانید به اینجا مراجعه کنید. *

نمره‌دهی🔗

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

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

ورودی🔗

در خط اول ورودی دو عدد nn و mm که به ترتیب طول و عرض جدول است به شما داده می‌شود. 1n,m1001 \le n, m \le 100 در nn خط بعدی در هر خط mm کاراکتر می‌آید که جدول نیمه کاره minesweeperminesweeper را توصیف می‌کند.

اگر خانه‌ای حاوی بمب باشد کاراکتر ′*′

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

اگر خانه‌ای مجاور تعدادی بمب باشد تعداد بمب های مجاور آن خانه (که عددی بین 11 تا 88 است)

و در نهایت اگر خانه‌ای هنوز باز نشده باشد و مجهول باشد کاراکتر ′?′ گذاشته می‌شود.

تضمین می‌شود که حداقل یک راه برای تکمیل جدول به صورتی که با شرایط گفته شده مطابقت کند وجود دارد.

خروجی🔗

در خط اول خروجی حداکثر تعداد بمب‌ها را چاپ کنید.

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

*جدول خروجی باید از کاراکتر‌های '.' و '' و اعداد ۱ تا ۸ تشکیل شده باشد و به ازای هر خانه شامل عدد تعداد خانه‌های مجاور رأسی شامل بمب آن خانه از عدد آن خانه بیشتر نباشد. **

مثال🔗

این مثال‌ها جهت آشنایی شما با جداول درست هستند؛ نیازی نیست که خروجی شما دقیقاً مانند این‌ها باشد و یا تعداد مین‌هایی که در خروجی قرار می‌دهید این مقدار باشد.

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

2 3
???
???
Plain text

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

6
***
***
Plain text

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

0
888
888
Plain text

اما چون هیچ مینی به جدول اضافه نکرده، نمره‌ی خاصی دریافت نخواهد کرد.

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

3 3
?3*
*6*
***
Plain text

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

6
13*
*6*
***
Plain text

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

5 5
221..
?*?..
????.
***??
2321?
Plain text

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

7
221..
**2..
**41.
***1.
2321.
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.