हमें पूर्णांकों की एक सरणी दी गई है। लक्ष्य सरणी में युग्मों की अधिकतम संख्या ज्ञात करना है जो जोड़े जाने पर समान योग उत्पन्न करते हैं। हमें ऐसे युग्मों की अधिकतम संख्या ज्ञात करनी है।
इनपुट
Arr[]= { 1,2,3,4,2 }
आउटपुट
Maximum count of pairs with same sum : 3
स्पष्टीकरण − संख्याओं के युग्मों का योग −
{1,2}, {1,2} Sum:3 {1,3},{2,2} Sum:4 {1,4},{2,3},{3,2} Sum:5 {2,4} Sum:6 {3,4} Sum:7 Maximum count of pairs with same sum is 3 ( for sum = 5 )
इनपुट
Arr[]= { 5,3,6,1 }
आउटपुट
Maximum count of pairs with same sum : 1
स्पष्टीकरण − संख्याओं के युग्मों का योग −
{5,3} Sum:8 {5,6} Sum:11 {5,1} Sum:6 {3,6} Sum:9 {3,1} Sum:4 {6,1} Sum:7 Maximum count of pairs with the same sum is 1.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक सरणी Arr[] का उपयोग पूर्णांकों को संग्रहीत करने के लिए किया जाता है।
-
पूर्णांक 'आकार' सरणी की लंबाई को संग्रहीत करता है।
-
फ़ंक्शन countEqualSum(int arr[], int n) एक सरणी लेता है, इसका आकार इनपुट के रूप में होता है और जोड़े की अधिकतम संख्या देता है जो समान योग उत्पन्न करते हैं।
-
सबसे पहले हम अद्वितीय योगों की आवृत्ति को संग्रहीत करने के लिए 'sum' सरणी लेंगे।
-
योग के प्रत्येक सूचकांक पर, उस तत्व की वृद्धि गणना।
-
सरणी योग का प्रत्येक सूचकांक तत्वों की एक जोड़ी का योग है।
-
सरणी योग के अंदर अधिकतम तत्व की खोज करके अधिकतम ऐसी गणना पाएं और maxC में स्टोर करें।
-
परिणाम के रूप में maxC लौटाएं
उदाहरण
#include <bits/stdc++.h> using namespace std; // Function to return the maximum // count of pairs with equal sum int countEqualSum(int arr[], int n){ int sum[20]={0}; int maxC = 0; // Store counts of sum of all pairs for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++){ sum[ arr[i]+arr[j] ]++; } for(int i=0;i<20;i++) if(sum[i]>maxC) maxC=sum[i]; return maxC; } int main(){ int Arr[] = { 1,2,3,4,2 }; int size = 5; cout <<”Maximum count of pairs which generate the same sum” << countEqualSum(Arr, size); return 0; }
आउटपुट
Maximum count of pairs which generate the same sum : 3