Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में समान योग के साथ सभी जोड़ियों को एक क्रमबद्ध सरणी में प्रिंट करें

इस समस्या में, हमारे पास एक अवर्गीकृत सरणी है और हमें इस सरणी के भीतर उन सभी युग्मों को प्रिंट करना है जिनका योग समान है।

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -

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

इस समस्या को हल करने के लिए, हमें समान योग के जोड़े खोजने होंगे। इसके लिए, हम समान राशि के लिए जोड़ियों की जांच करेंगे। और डुप्लीकेट जोड़े से बचने के लिए, हम मानचित्र का उपयोग करेंगे।

इसके लिए, हमें दो मानचित्रों की आवश्यकता होगी, एक सभी योग जोड़े और उनके योग को संग्रहीत करने के लिए और अन्य सभी योग और उनके संबंधित जोड़े को संग्रहीत करने के लिए।

तो, Map1 → कुंजी =जोड़े; मान → योग

Map2 → कुंजी =योग पूर्णांक; मान → जोड़ी का वेक्टर

अब, उन सभी मानों को प्रिंट करें जिनका योग मान समान है।

उदाहरण

उपरोक्त तर्क को स्पष्ट करने का कार्यक्रम -

#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++ में दिए गए योग के साथ सभी ट्रिपल प्रिंट करें

    इस समस्या में, हमें अद्वितीय पूर्णांकों की एक सरणी और एक योग दिया जाता है। और हमें उन त्रिगुणों को खोजना है जो समान योग बना सकते हैं। आइए समस्या को हल करने के लिए एक उदाहरण लेते हैं - Input : array = {0 , 2 , -1 , 1, -2} Sum = 1 Output : 1 2 -2 0 2 -1 इस समस्या को हल करने के लिए, हम योग प्रदान करन

  1. C++ में दिए गए योग के साथ सभी जोड़ियों को प्रिंट करें

    इस समस्या में, हमें पूर्णांकों की एक सरणी और एक पूर्णांक योग दिया जाता है और हमें पूर्णांकों के उन सभी युग्मों को प्रिंट करना होता है जिनका योग योग मान के बराबर होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं: इनपुट − सरणी ={1, 6, -2, 3} योग =4 आउटपुट - (1, 3) , (6, -2) यहां, हमें दिए गए योग म

  1. सी ++ में एक सम ऐरे पहेली?

    यहां हम सरणी से संबंधित एक दिलचस्प समस्या देखेंगे। n तत्वों के साथ एक सरणी है। हमें n तत्वों की एक और सरणी बनानी है। लेकिन दूसरी सरणी की i-वें स्थिति i-वें तत्व को छोड़कर पहले सरणी के सभी तत्वों का योग धारण करेगी। और एक बाधा यह है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते हैं। यदि हम घट