আমাদের একটি ইন্টিজার অ্যারে দেওয়া আছে। লক্ষ্য হলো অ্যারেতে যেসব পেয়ারের যোগফল একই, তাদের সর্বোচ্চ কাউন্ট বের করা।
ইনপুট
Arr[]= { 1,2,3,4,2 }
আউটপুট
Maximum count of pairs with same sum : 3
ব্যাখ্যা: পেয়ার সম: {1,2},{1,2}=3; {1,3},{2,2}=4; {1,4},{2,3},{3,2}=5 (সর্বোচ্চ ৩টি); {2,4}=6; {3,4}=7।
ইনপুট
Arr[]= { 5,3,6,1 }
আউটপুট
Maximum count of pairs with same sum : 1
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- countEqualSum(int arr[], int n) ফাংশন।
- sum[20]={0} ফ্রিকোয়েন্সি অ্যারে (সামান্য সম ছোট হলে ২০ যথেষ্ট)।
- নেস্টেড লুপ i=0 to n-2, j=i+1 to n-1: sum[arr[i]+arr[j]]++।
- sum অ্যারেতে ম্যাক্সিমাম ভ্যালু খুঁজে maxC-এ রাখা।
- maxC রিটার্ন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int countEqualSum(int arr[], int n){
int sum[20] = {0};
int maxC = 0;
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