پاسخ سوال نعلم کو کوئرا
در این نوشته تمرین “چیهمونی؟” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردهایم.
پاسخ سوال نعلم کو کوئرا
بهروز نعل اسبش را توی مزرعه گم کرده و میخواهد آن را پیدا کند. از آنجایی که بهروز ذهن پیچیدهای دارد و دوست دارد از هر چیزی یک مسئله بسازد، میخواهد بداند نعل اسب چند تا جای مختلف میتواند قرار بگیرد. مزرعه به شکل یک جدول هست که در هر کدام از خانههایش یا علوفه قرار دارد یا خالی است. پای اسب بهروز کمی عجیب و غریب است و نعل اسبش شکل یک مربع 3*3 که دو خانه مجاور ضلعی از محیط آن به همراه مرکزش برداشته شده است. در شکل زیر حالت کلی نعل اسب را میبینیم که با خانههای سیاه مشخص شده است (دقت کنید که ممکن است مکان نعل اسب دورانها و تقارنهایی از شکل زیر نیز است).

میدانیم نعل اسب بهروز در بین علوفهها پنهان شده و تعدادی علوفه که به شکل بالا است، میتوانند یک نعل اسب را در خود جای دهند. حال به بهروز کمک کنید تا تعداد مکانهای مختلف نعل اسب را پیدا کند.
ورودی سوال نعلم کو
در سطر اول ورودی دو عدد n و آمدهاند که به ترتیب تعداد سطرها و ستونهای مزرعه ما را نشان میدهند. در امین سطر از n سطر بعدی یک رشته به طول m متشکل از حروف ۰ و * آمده است. حرف . نشاندهنده خانه خالی و حرف * نشان دهنده علوفه است.
خروجی سوال نعلم کو
در تنها سطر خروجی، پاسخ مسئله را چاپ کنید.
حل سوال نعلم کو
#include <iostream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
string mazrae[n];
for(int i=0; i<n; i++)
cin >> mazrae[i];
int t = 0, nn, mm;
int circle[8][2] = {{0,0}, {0,1}, {0,2}, {1,2}, {2, 2}, {2, 1}, {2, 0}, {1, 0}};
for(int i=0; i<n-2; i++)
{
for(int j=0; j<m-2; j++)
{
int motavali = 0;
for(int k=0; k<13; k++)
{
nn = i + circle[(k%8)][0];
mm = j + circle[(k%8)][1];
if(mazrae[nn][mm] == '*')
{
if(++motavali >= 6)
t++;
}
else
motavali = 0;
}
}
}
cout << t << endl;
system("pause");
return 0;
}
منبع سوال: وبسایت کوئرا
اگر روش حل بهتری برای “تمرین نعلم کو؟!” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.



















جالب شد که از array circle برای مختصات استفاده کردین
ممنون از بازخوردتون
با همین حلقهی تو در تو برای n,m≤100 عالی جواب میده
سلام٬ خوشحالیم که این روش حل برای شما مفید بوده است.
کد شما خوب کار میکنه
موفق باشین
سوال خیلی خلاقانه بود
موفق باشین
جالب بود
موفق باشین