আমাদের ০ ও ১ দিয়ে একটি অ্যারে দেওয়া আছে (বাল্ব অন/অফ)। একই তারে সংযুক্ত N বাল্ব। i-তম বাল্বের সুইচ চাপলে ডানপাশের সব বাল্ব (i+1 থেকে n) তাদের স্টেট ফ্লিপ করে (অন->অফ, অফ->অন)। লক্ষ্য সব বাল্ব অন (১) করতে ন্যূনতম সুইচ প্রেস কাউন্ট করা।
ইনপুট
Bulbs[]= { 1,0,1,0 }
আউটপুট
Minimum right flips: 3
ব্যাখ্যা: 1010 -> সুইচ ২ -> 1101 (count=1) -> সুইচ ৩ -> 1110 (count=2) -> সুইচ ৪ -> 1111 (count=3)।
ইনপুট
Bulbs[]= { 1,0,0,0 }
আউটপুট
Minimum right flips: 1
ব্যাখ্যা: 1000 -> সুইচ ২ -> 1111 (count=1)।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- minFlips(int arr[], int n) ফাংশন।
- count=0, switch[]={0} (ফ্লিপ স্টেট)۔
- i=0 থেকে n-1: arr[i]==1 && switch[i]==0 -> কিছু নয়। arr[i]==0 && switch[i]==1 -> কিছু নয়। arr[i]==0 && switch[i]==0 -> count++, j=i থেকে n-1 পর্যন্ত arr[j] ফ্লিপ (০->১, ১->০)।
- count রিটার্ন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int minFlips(int arr[], int n){
int count = 0;
int swich[100] = {0};
for(int i=0; i
আউটপুট
Minimum right flips to set all values in an array: 4