কম্পিউটার

C++-এ দুটি ভিন্ন অ্যারের সাব-অ্যারের সর্বাধিক বা যোগফল


সমস্যা বিবৃতি

ধনাত্মক পূর্ণসংখ্যার দুটি অ্যারে দেওয়া হয়েছে। প্রতিটি অ্যারে থেকে সমান আকারের দুটি সাব-অ্যারে নির্বাচন করুন এবং সর্বাধিক সম্ভাব্য বা দুটি সাব-অ্যারের যোগফল গণনা করুন৷

উদাহরণ

যদি arr1[] ={1, 2, 4, 3, 2} এবং

Arr2[] ={1, 3, 3, 12, 2} তারপর সর্বাধিক ফলাফল পাওয়া যায় যখন আমরা নিম্নলিখিত দুটি সাবয়ারে তৈরি করি -

Subarr1[] ={2, 4, 3} এবং

Subarr2[] ={3, 3, 12}

অ্যালগরিদম

আমরা ফলাফল পেতে নিচের সূত্র ব্যবহার করতে পারি −

f(a, 1, n) + f(b, 1, n)

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int getMaximumSum(int *arr1, int *arr2, int n) {
   int sum1 = 0;
   int sum2 = 0;
   for (int i = 0; i < n; ++i) {
      sum1 = sum1 | arr1[i];
      sum2 = sum2 | arr2[i];
   }
   return sum1 + sum2;
}
int main() {
   int arr1[] = {1, 2, 4, 3, 2};
   int arr2[] = {1, 3, 3, 12, 2};
   int n = sizeof(arr1) / sizeof(arr1[0]);
   cout << "Maximum result = " << getMaximumSum(arr1, arr2, n) << endl;
   return 0;
}

আউটপুট

যখন আপনি উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Maximum result = 22

  1. C++ এ প্রদত্ত আকারের দুটি নন-ওভারল্যাপিং সাবয়ারের সর্বাধিক যোগফল

  2. C++ এ দুটি অ্যারেতে সর্বাধিক সমষ্টি পথ

  3. C++ এ সর্বাধিক সাবয়ারের সমষ্টি m মডিউল

  4. C++ এ একটি অ্যারেতে সর্বোচ্চ ভারসাম্যের যোগফল