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

দুই অ্যারেতে উপাদান বদলিয়ে যোগফল সমান করার জোড়া খুঁজে বের করা C++-এ

মনে করুন দুটি ভিন্ন আকারের অ্যারে আছে। আমাদের কাজ হল একটি জোড়া (x, y) খুঁজে বের করা, যেখানে x প্রথম অ্যারেতে এবং y দ্বিতীয় অ্যারেতে আছে। এই জোড়াটি এমনভাবে বেছে নিতে হবে যাতে এই দুটি উপাদান বদলিয়ে দেওয়ার পর দুটি অ্যারেতি যোগফল সমান হয়ে যায়।

উদাহরণস্বরূপ, প্রথম অ্যারে A = [4, 1, 2, 2, 1, 1] এবং দ্বিতীয় অ্যারে B = [3, 3, 6, 3]। এখানে A-এর যোগফল ১১ এবং B-এর যোগফল ১৫। যদি আমরা (1, 3) জোড়াটি বদলি দিই, তবে নতুন অ্যারেগুলো হবে: [4, 3, 2, 2, 1, 1] (যোগফল ১৩) এবং [1, 3, 6, 3] (যোগফল ১৩)। এখন উভয় যোগফল সমান।

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

এই সমস্যাটি সমাধান করতে আমরা প্রথম অ্যারের প্রতিটি উপাদানের সাথে দ্বিতীয় অ্যারের প্রতিটি উপাদান যাচাই করব। প্রতিটি জোড়ার জন্য বদলি দিয়ে নতুন যোগফল বের করব এবং দেখব তারা সমান কিনা।

উদাহরণ কোড

#include <iostream>
using namespace std;

int arraySum(int arr[], int n) {
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
    return sum;
}

void getPair(int A[], int n, int B[], int m) {
    int sum_first = arraySum(A, n);
    int sum_second = arraySum(B, m);
    int newsum_first, newsum_second, first, second;

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            newsum_first = sum_first - A[i] + B[j];
            newsum_second = sum_second - B[j] + A[i];
            if (newsum_first == newsum_second) {
                first = A[i];
                second = B[j];
            }
        }
    }
    cout << "(" << first << ", " << second << ")";
}

int main() {
    int A[] = {4, 1, 2, 2, 1, 1};
    int n = sizeof(A) / sizeof(A[0]);
    int B[] = {3, 3, 6, 3};
    int m = sizeof(B) / sizeof(B[0]);
    getPair(A, n, B, m);
    return 0;
}

আউটপুট

(1, 3)
  1. তিনটি সর্টেড অ্যারেতে সাধারণ উপাদানগুলো খুঁজে বের করা C++-তে

  2. পুনরাবৃত্ত বিয়োগ দিয়ে সব উপাদান একই করে অ্যারেতে সর্বোচ্চ যোগফল বের করা C++-তে

  3. অ্যারেতে নন-রিপিটিং (ডিস্টিংक्ट) উপাদানগুলোর যোগফল বের করা C++-তে

  4. অ্যারেতে যেসব উপাদানের কমপক্ষে দুটি বড় উপাদান আছে সেগুলো খুঁজে বের করা C++-তে