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

C++-এ নিচ থেকে ডানে আলো ফেরাতে সর্বোচ্চ মিরর গণনা

আমাদের একটি স্কোয়ার ম্যাট্রিক্স দেওয়া আছে যেটিতে ০ (খালি) এবং ১ (বাধা) রয়েছে। খালি সেলে মিরর রাখা যাবে যাতে আলো নিচ থেকে ডানে যেতে পারে। মিরর [i,j]-তে থাকলে সে সারি (i) এর ডানদিকের সব সেল এবং সে কলাম (j) এর নিচের সব সেল অবশ্যই খালি (০) হতে হবে।

ইনপুট

Arr[][] = {{0,0,1,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,1,1,0,1},{1,1,1,0,1}}

আউটপুট

No. of mirrors : 3

ব্যাখ্যা: মিরর রাখা যাবে: Arr[1][0] (রো ১, কলাম ০ নিচে ও ডানে সব ০), Arr[2][0], Arr[4][4] (লাস্ট সেল, নিচে/ডানে কিছু নেই)।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • Arr[][] ম্যাট্রিক্স।
  • maximumMirror(int mat[][], int n) ফাংশন মিরর কাউন্ট রিটার্ন।
  • flag = বাধা আছে কিনা। count = 0।
  • ম্যাট্রিক্স ট্র্যাভার্স: mat[i][j]==0 হলে নিচে (k=i+1 to n-1) এবং ডানে (l=j+1 to n-1) চেক। যেকোনো ১ পেলে flag=0, ব্রেক।
  • দুই লুপের পর flag==1 হলে count++।
  • count রিটার্ন।

উদাহরণ কোড

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

int maximumMirror(int mat[5][5], int N){
    int flag = 0, count = 0;
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++) {
            int k = i+1, l = j+1;
            if (mat[i][j] == 0) {
                while (k < N) {
                    if (mat[k][j] == 1) { flag = 0; break; }
                    else flag = 1;
                    k++;
                }
                if (flag == 1)
                    while (l < N) {
                        if (mat[i][l] == 1) { flag = 0; break; }
                        else flag = 1;
                        l++;
                    }
                if (flag == 1) count++;
            }
        }
    return count;
}

int main(){
    int N = 5;
    int mat[5][5] = {{0,0,1,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,1,1,0,1},{1,1,1,0,1}};
    cout << "Maximum mirrors which can transfer light from bottom to right :" << maximumMirror(mat, N) << endl;
    return 0;
}

আউটপুট

Maximum mirrors which can transfer light from bottom to right :3
  1. C++ কোড: ব্যাংক থেকে সর্বাধিক ব্যাংক নোট সংগ্রহ

  2. C++ প্রোগ্রাম: গম্ভীর পথ অনুসরণ করে গম ভেঙে সর্বোচ্চ লাভ গণনা

  3. C++ প্রোগ্রাম: গাড়ি বিক্রি করে সর্বোচ্চ লাভ অর্জন

  4. C++ প্রোগ্রাম: গ্রাফ থেকে এজ মুছে স্কোর সর্বনিম্ন করায় সর্বোচ্চ কমতি