ধরুন একটি রুম আছে যেখানে n লাইট রয়েছে যা প্রাথমিকভাবে চালু করা হয়েছে এবং দেয়ালে 4টি বোতাম রয়েছে। বোতামগুলির দিকে ঠিক m অজানা অপারেশনগুলি সম্পাদন করার পরে, আমাদের এন লাইটের বিভিন্ন ধরণের স্থিতি ফেরত দিতে হবে। সুতরাং বিবেচনা করুন n লাইটগুলিকে সংখ্যা হিসাবে লেবেল করা হয়েছে [1, 2, 3 ..., n], এই 4 টি বোতামের কাজ নিম্নরূপ -
- সব আলো ফ্লিপ করুন।
- জোড় সংখ্যা সহ ফ্লিপ লাইট।
- বিজোড় সংখ্যা দিয়ে লাইট ফ্লিপ করুন।
- (3k + 1) সংখ্যা, k =0, 1, 2, ... সহ লাইট ফ্লিপ করুন।
এখন যদি n =3 এবং m =1 হয়, তাহলে 4টি অপারেশন হবে, এগুলো হল, [off, on, off], [on, off, on], [off, off, off], [off, on, on ]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি n 0 হয় বা m 0 হয়, তাহলে 1 ফেরত দিন
- যদি n 1 হয়, তাহলে 2 ফেরত দিন
- যদি n 2 হয়, তাহলে 3 দিন, যখন m 1 হয়, অন্যথায় 4 দিন
- যদি m 1 হয়, তাহলে 4 ফেরত দিন
- যদি m 2 হয়, তাহলে 7 দিন, অন্যথায় 8 দিন।
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
#include <bits/stdc++.h> using namespace std; class Solution { public: int flipLights(int n, int m) { if (m == 0 || n == 0) return 1; if (n == 1) return 2; if (n == 2) return m == 1? 3:4; if (m == 1) return 4; return m == 2? 7:8; } }; main(){ Solution ob; cout << (ob.flipLights(3, 1)); }
ইনপুট
3 1
আউটপুট
4