কম্পিউটার টিউটোরিয়াল

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


সমস্যা বিবরণ

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

উদাহরণ

যদি 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++-এ দুটি নন-ওভারল্যাপিং সাবঅ্যারের সর্বোচ্চ যোগফল (Maximum Sum Two Non-Overlapping Subarrays)

  2. C++-এ দুটি অ্যারেতে ম্যাক্সিমাম সাম পাথ (Maximum Sum Path in Two Arrays)

  3. C++-এ ম্যাক্সিমাম সাবঅ্যারে সাম মডুলো m

  4. C++-এ অ্যারেতে সর্বোচ্চ ইকুইলিব্রিয়াম যোগফল