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

پاسخ سوال نعلم کو کوئرا

پاسخ سوال نعلم کو کوئرا
پاسخ سوال نعلم کو کوئرا

پاسخ سوال نعلم کو کوئرا

در این نوشته تمرین “چیهمونی؟” که در وب‌سایت کوئرا موجود است را برای شما کاربران عزیز حل کرده‌ایم.

 

پاسخ سوال نعلم کو کوئرا

بهروز نعل اسبش را توی مزرعه گم کرده و می‌خواهد آن را پیدا کند. از آن‌جایی که بهروز ذهن پیچیده‌ای دارد و دوست دارد از هر چیزی یک مسئله بسازد، می‌خواهد بداند نعل اسب چند تا جای مختلف می‌تواند قرار بگیرد. مزرعه به شکل یک جدول هست که در هر کدام از خانه‌هایش یا علوفه قرار دارد یا خالی است. پای اسب بهروز کمی عجیب و غریب است و نعل اسبش شکل یک مربع 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;
}

منبع سوال‌: وب‌سایت کوئرا

 

اگر روش حل بهتری برای “تمرین نعلم کو؟!” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]