কম্পিউটার টিউটোরিয়াল

সি++ কোড: গ্রিডে অবজেক্ট খুঁজে বের করার জন্য স্ক্যান সংখ্যা গণনা করুন

একটি m x n গ্রিড দেওয়া আছে। একটি অবজেক্ট (ix, iy) সেলে আছে। স্ক্যানিং (sx, sy) থেকে শুরু হবে। স্ক্যানিং অ্যালগরিদম: যদি পয়েন্টার (i, j)-এ থাকে, তবে i-তম সারি এবং j-তম কলাম স্ক্যান করবে। অবজেক্ট পাওয়া গেলে বন্ধ, না পেলে (i+1, j+1)-এ যাবে এবং আবার স্ক্যান করবে। অবজেক্ট পাওয়া পর্যন্ত কতবার স্ক্যান করতে হবে তা বের করতে হবে।

উদাহরণ

n=20, m=20, sx=3, sy=2, ix=12, iy=4 → আউটপুট: 2

সমাধানের ধাপসমূহ

t1 := (sx <= ix) ? ix-sx : 2*n - ix - sx
t2 := (sy <= iy) ? iy-sy : 2*m - iy - sy
print(min(t1, t2))

সি++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

void solve(int n, int m, int sx, int sy, int ix, int iy) {
    int t1 = (sx <= ix ? ix - sx : 2*n - ix - sx);
    int t2 = (sy <= iy ? iy - sy : 2*m - iy - sy);
    cout << min(t1, t2);
}

int main() {
    int n=20, m=20, sx=3, sy=2, ix=12, iy=4;
    solve(n, m, sx, sy, ix, iy);
    return 0;
}

ইনপুট

20, 20, 3, 2, 12, 4

আউটপুট

2
  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ ব্যবহার করে পেল (Pell) সংখ্যা নির্ণয় করুন

  3. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  4. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন