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

C++-এ গ্রিডে ম্যাজিক স্কোয়ার (Magic Squares In Grid)

একটি গ্রিড দেওয়া আছে। আমাদের সেই গ্রিডে কতটুকু ৩x৩ ম্যাজিক স্কোয়ার সাব-গ্রিড আছে তা বের করতে হবে। ম্যাজিক স্কোয়ার হল ১ থেকে ৯ পর্যন্ত স্বতন্ত্র সংখ্যা দিয়ে ভরা ৩x৩ গ্রিড যাতে প্রতিটি সারি, কলাম এবং দুটি ডায়াগোনালের যোগফল সমান থাকে।

ইনপুট [[4,3,8,4],[9,5,1,9],[2,7,6,2]] হলে আউটপুট ১, কারণ ম্যাজিক স্কোয়ারটি:

4 3 8
9 5 1
2 7 6

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

  • ৮টি সম্ভাব্য ম্যাজিক স্কোয়ারের সংখ্যা একটি সেটে সংরক্ষণ করুন
  • অফসেট অ্যারে ব্যবহার করে ৩x৩ গ্রিডের সংখ্যা একত্রিত করুন
  • প্রতিটি ৩x৩ সাব-গ্রিড চেক করুন সেটে আছে কিনা
  • মোট সংখ্যা রিটার্ন করুন

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
    int numMagicSquaresInside(vector<vector<int>>& grid) {
        const unordered_set<int> s{816357492, 834159672, 618753294,
            672159834,492357816, 438951276, 294753618,276951438};
        const int offset[][2] = {{-2, -2}, {-2, -1}, {-2, 0},{-1, -2}, {-1, -1}, {-1, 0}, { 0, -2}, { 0, -1}, { 0, 0}};
        int ans = 0;
        for(int i = 2; i< grid.size(); i++)
        {
            for(int j = 2; j

ইনপুট

{{4,3,8,4},{9,5,1,9},{2,7,6,2}}

আউটপুট

1
  1. বাইনোমিয়াল কোইফিশিয়েন্টের বর্গের যোগফল C++-এ

  2. C++-এ একটি সংখ্যা ম্যাজিক নম্বর (রিকার্সিভ ডিজিট সম ১) কিনা তা যাচাই করা

  3. C++-এ অ্যালিকোট সম (Aliquot Sum)

  4. C++-এ প্রথম n প্রাকৃতিক সংখ্যার বর্গের যোগফল (Sum of Squares)