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

C++-এ দুটি অ্যারের এলিমেন্টগুলোর গুণফলের সর্বোচ্চ সম বের করার প্রোগ্রাম


সমস্যা বিবরণ

একই আকারের দুটি অ্যারে দেওয়া থাকলে, প্রথম অ্যারের প্রতিটি এলিমেন্টকে দ্বিতীয় অ্যারের একটি এলিমেন্ট দিয়ে গুণ করে সর্বোচ্চ মোট সম বের করতে হবে। প্রতিটি এলিমেন্ট ঠিক একবার ব্যবহার করা হবে।

উপায়: উভয় অ্যারে সর্ট করুন এবং সমাবেশী ইন্ডেক্সগুলো গুণ করুন।

সমাধানের পদ্ধতি

  1. উভয় অ্যারে সর্ট করুন।
  2. সমাবেশী ইন্ডেক্সগুলোর গুণফল যোগ করুন।
  3. সর্বোচ্চ সম পাওয়া যাবে।

নোট: অ্যারে সাইজ হিসাবের কোডে বাগ আছে (sizeof পয়েন্টারে কাজ করে না), নিচে সংশোধন করা হয়েছে।

C++ কোড উদাহরণ (সংশোধিত)

#include <bits/stdc++.h>
using namespace std;

int maximumSOP(int a[], int b[], int n) {
    int sop = 0;
    sort(a, a + n);
    sort(b, b + n);
    for (int i = 0; i < n; i++) {
        sop += a[i] * b[i];
    }
    return sop;
}

int main() {
    int A[] = {1, 2, 3};
    int B[] = {4, 5, 1};
    int n = sizeof(A) / sizeof(A[0]);
    cout << maximumSOP(A, B, n);
    return 0;
}

আউটপুট

24

ব্যাখ্যা

সর্টেড A: [1,2,3], সর্টেড B: [1,4,5]

সম = 1×1 + 2×4 + 3×5 = 1 + 8 + 15 = 24

জটিলতা

  • সময়: O(n log n)
  • স্থান: O(1)
  1. C++-এ দুটি অ্যারেতে ম্যাক্সিমাম সাম পাথ (Maximum Sum Path in Two Arrays)

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

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

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