কম্পিউটার

C++ এ বাল্ব সুইচার II


ধরুন একটি রুম আছে যেখানে 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

  1. C++ এ বাল্ব সুইচার III

  2. এন-কুইন সমস্যা সমাধানের জন্য C++ প্রোগ্রাম

  3. C++ এ অকার্যকর ফাংশন থেকে ফিরে আসুন

  4. কিভাবে C++ এ "একটি অবজেক্ট রিটার্ন" করবেন?