কম্পিউটার

C++ এ সমান যোগফল সহ একটি সাজানো বিন্যাসে সমস্ত জোড়া প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি সাজানো বিন্যাস রয়েছে এবং আমাদের এই অ্যারের মধ্যে সমস্ত জোড়া মুদ্রণ করতে হবে যার সমষ্টি সমান।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

Input: array = [12, 13, 20, 5]
Output: [12, 13] and [20, 5] have sum 25.

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

এর জন্য, আমাদের দুটি মানচিত্রের প্রয়োজন হবে, একটি সমস্ত যোগফল এবং তাদের যোগফল সংরক্ষণ করার জন্য এবং অন্যটি সমস্ত যোগফল এবং তাদের সংশ্লিষ্ট জোড়াগুলি সংরক্ষণ করার জন্য৷

সুতরাং, মানচিত্র1 → কী =জোড়া; মান → যোগফল

মানচিত্র2 → কী =যোগফল পূর্ণসংখ্যা; মান → জোড়ার ভেক্টর

এখন, একই সমষ্টির মান আছে এমন সমস্ত মান প্রিন্ট করুন।

উদাহরণ

উপরের যুক্তিটি ব্যাখ্যা করার জন্য প্রোগ্রাম -

#include <bits/stdc++.h>
using namespace std;
void findEqualSumPairs(int A[], int n){
   map<int, vector<pair<int, int> > >map1;
   for (int i = 0; i < n - 1; i++) {
      for (int j = i + 1; j < n; j++) {
         pair<int, int> p = make_pair(A[i], A[j]);
         map1[A[i] + A[j]].push_back(p);
      }
   }
   for (auto value = map1.begin(); value != map1.end(); value++) {
      if (value->second.size() > 1) {
         for (int i = 0; i < value->second.size(); i++) {
            cout<<"[ "<<value->second[i].first<<", "<<value->second[i].second<<"] ";
         }
         cout<<"have sum : "<<value->first<<endl;
      }
   }
}
int main() {
   int A[] = { 6, 4, 12, 10, 22,11, 8, 2 };
   int n = sizeof(A) / sizeof(A[0]);
   cout<<"Pairs with same sum are : \n";
   findEqualSumPairs(A, n);
   return 0;
}

আউটপুট

একই যোগফল সহ জোড়া হল −

[ 6, 4] [ 8, 2] have sum : 10
[ 4, 8] [ 10, 2] have sum : 12
[ 6, 8] [ 4, 10] [ 12, 2] have sum : 14
[ 6, 10] [ 4, 12] have sum : 16
[ 6, 12] [ 10, 8] have sum : 18

  1. C++ এ সর্বাধিক সংখ্যক বার হওয়া সমস্ত যোগফল প্রিন্ট করুন

  2. C++ এ প্রদত্ত যোগফল সহ সমস্ত ট্রিপলেট প্রিন্ট করুন

  3. C++ এ প্রদত্ত যোগফল সহ সমস্ত জোড়া প্রিন্ট করুন

  4. C++ এ একটি সমষ্টি অ্যারে ধাঁধা?