কম্পিউটার

সর্বাধিক আয়না যা C++ এ নিচ থেকে ডানে আলো স্থানান্তর করতে পারে


আমাদেরকে একটি বর্গাকার ম্যাট্রিক্স দেওয়া হয়েছে যাতে শুধুমাত্র 0 এবং 1 আছে। 0 একটি ফাঁকা স্থানকে বোঝায় এবং 1 মানে বাধা। আমাদের অবশ্যই অনেকগুলি আয়না খুঁজে বের করতে হবে যেগুলিকে এমনভাবে স্থাপন করা যেতে পারে যে এই আয়নাগুলি নীচে থেকে ডানদিকে আলো স্থানান্তর করতে পারে। এটি সম্ভব যখন, সূচীতে আয়না স্থাপন করা হয় [i,j] এবং সেই নির্দিষ্ট সারির ডানদিকে থাকা সমস্ত কক্ষের জন্য ( i ) এবং সেই নির্দিষ্ট কলামের নীচের ( j ) কক্ষগুলিতে কোনও বাধা থাকে না৷

যদি আয়নাটি A[i][j] এ থাকে, তাহলে A[i+1 থেকে n][j ] এবং A[i] ] j+1 থেকে n ] সবগুলোই খালি অর্থাৎ 0. নিচের চিত্রে দেখানো হয়েছে।

সর্বাধিক আয়না যা C++ এ নিচ থেকে ডানে আলো স্থানান্তর করতে পারে

ইনপুট

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}}

আউটপুট

<পূর্ব> না। আয়নার :3

ব্যাখ্যা - চিত্রে দেখানো হয়েছে। আয়না কোষে স্থাপন করা যেতে পারে

Arr[1][0] − সারি 1 এবং কলাম 0 এর নীচে এবং ডানদিকে সমস্ত 0 রয়েছে৷

Arr[2][0] − সারি 2 এবং কলাম 0 এর নীচে এবং ডানদিকে সমস্ত 0 রয়েছে।

Arr[4][4] − শেষ কক্ষটি হল 0 এবং নিচে কোন সারি নেই এবং ডানদিকে কলাম।

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

  • Array Arr[][] 0's এবং 1's এর ম্যাট্রিক্স উপস্থাপন করতে ব্যবহৃত হয়..

  • ফাংশন ম্যাক্সিমাম মিরর(int mat[][], int n) ম্যাট্রিক্স নেয় এবং এটির সাইড n ইনপুট হিসাবে থাকে এবং উপরে দেখানো হিসাবে স্থাপন করা যেতে পারে এমন সর্বাধিক আয়নার সংখ্যা ফেরত দেয়।

  • ভেরিয়েবল পতাকাটি নীচের কক্ষে বা arr [i] [j] এর ডানদিকের কক্ষগুলিতে বাধার উপস্থিতি চিহ্নিত করতে ব্যবহৃত হয়৷

  • গণনা আয়নার সংখ্যা উপস্থাপন করতে ব্যবহৃত হয়, প্রাথমিকভাবে 0।

  • সূচক 0,0 থেকে ম্যাট্রিক্স অতিক্রম করুন।

  • প্রতিটি কক্ষের জন্য যদি এটি খালি থাকে (আয়না স্থাপন করা যেতে পারে), নীচের কক্ষগুলির জন্য পরীক্ষা করুন ( k=i+1 থেকে n-1) .যদি কোনো arr[k][j] একটি বাধা (মান=1 ) হয় তবে বিরতি করুন লুপ করুন এবং ফ্ল্যাগ 1 হিসাবে চিহ্নিত করুন। যদি না হয়, ডানদিকে কক্ষের জন্য পরীক্ষা চালিয়ে যান ( l=j+1 থেকে n-1)।

  • কোন বাধা উপস্থিত থাকলে পতাকা সেট করুন।

  • উভয় সময় লুপ করার পরে যদি পতাকা 0 হয় তবে আয়না হিসাবে বৃদ্ধির সংখ্যা স্থাপন করা যেতে পারে।

  • ফেরত সংখ্যা হিসাবে গণনা. আয়না যা সর্বোচ্চ।

উদাহরণ

// C++ প্রোগ্রাম কতগুলি আয়না স্থানান্তর করতে পারে তা খুঁজে বের করতে// নীচে থেকে ডানে আলো# অন্তর্ভুক্ত করুন নেমস্পেস ব্যবহার করে std;// পদ্ধতিটি আয়নার সংখ্যা ফেরত দেয় যা নীচে থেকে আলো স্থানান্তর করতে পারে// আলো স্থানান্তর করতে পারে rightint Maximror(int mat[5][5], int N){ // চিহ্নিত করতে যে ডান বা নীচের সমস্ত কোষ 0---কোন বাধা নেই int flag=0; int count=0; // আয়নার সংখ্যা int i,j,k,l; //এর জন্য (int i=0; i 

আউটপুট

সর্বোচ্চ আয়না যা নীচে থেকে ডানে আলো স্থানান্তর করতে পারে :3

  1. সর্বোচ্চ ব্যাঙ্কনোট গণনা করার জন্য সি++ কোড ব্যাঙ্ক সংগ্রহ করতে পারে

  2. গম বিক্রি করে সর্বোচ্চ কতটা মুনাফা অর্জন করা যায় তা খুঁজে বের করতে C++ প্রোগ্রাম

  3. গাড়ি বিক্রি করে সর্বোচ্চ কত টাকা আয় করা যায় তা খুঁজে বের করতে C++ প্রোগ্রাম

  4. একটি গ্রাফ থেকে সর্বাধিক স্কোর কমানো যেতে পারে তা খুঁজে বের করতে C++ প্রোগ্রাম