কম্পিউটার

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


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

ধরুন প্রথম অ্যারে A ধরে রেখেছে [4, 1, 2, 2, 1, 1] এবং B ধরে আছে [3, 3, 6, 3], এখন A এর যোগফল 11 এবং B এর যোগফল 15, আমরা নেব (1, 3) এর মতো একটি জোড়া, যদি আমরা এই দুটি অ্যারের মধ্যে এই মানগুলিকে অদলবদল করি, তাহলে যোগফল হবে:[4, 3, 2, 2, 1, 1] =13, [1, 3, 6, 3] =13, তারা একই।

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

উদাহরণ

#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);
}

আউটপুট

(1, 3)

  1. C++ এ তিনটি সাজানো অ্যারেতে সাধারণ উপাদান খুঁজুন

  2. C++ এ বারবার বিয়োগ করে সব উপাদান একই করার পর সর্বাধিক অ্যারের যোগফল খুঁজুন

  3. C++ এ একটি অ্যারেতে অ-পুনরাবৃত্ত (স্বতন্ত্র) উপাদানগুলির সমষ্টি খুঁজুন

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