একটি অ্যারে arr[] দেওয়া আছে N উপাদানসহ। লক্ষ্য হল সব বৈধ পেয়ার (Arr[i], Arr[j]) গণনা করা যা নির্দিষ্ট শর্ত মেনে চলে। পেয়ার Arr[i], Arr[j] অবৈধ যদি:
- Arr[i] == Arr[j]
- Arr[i] + Arr[j] জোড়
- i + j < 120
নোট: Arr[i], Arr[j] এবং Arr[j], Arr[i] একই পেয়ার গণনা হবে। বৈধ পেয়ারের i!=j।
উদাহরণ
ইনপুট: Arr[] = { 3,2,1,2,4,3 }, N=4
আউটপুট: বৈধ পেয়ার সংখ্যা: ২
ব্যাখ্যা: বৈধ পেয়ার: Arr[0] & Arr[4] → (3,3) এখানে Arr[i]==Arr[j] & 3+3 জোড় ও i!=j এবং i+j<120। Arr[1] & Arr[3] → (2,2) এখানেও একই শর্ত।
ইনপুট: Arr[] = { 1,2,3,4,5,6 }, N=6
আউটপুট: বৈধ পেয়ার সংখ্যা: ০
ব্যাখ্যা: কোনো উপাদান রিপিট নেই। i!=j থাকা (a,a) টাইপ পেয়ার সম্ভব নয়।
অ্যাপ্রোচ
- ইন্টিজার অ্যারে Arr[] নেওয়া হয়।
- n ভেরিয়েবলে দৈর্ঘ্য।
countPairs(int arr[], int n)ফাংশন অ্যারে এবং দৈর্ঘ্য গ্রহণ করে বৈধ পেয়ার রিটার্ন করে।- দুটি নেস্টেড for লুপ: আউটার 0<=i
- sum = arr[i]+arr[j]। বৈধ পেয়ারের শর্ত: i!=j এবং sum%2==0 এবং i+j<120।
- এখন arr[i]==arr[j] চেক করে count বাড়ানো হয়।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int countPairs(int arr[], int n) {
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
int sum = arr[i] + arr[j];
if (sum % 2 == 0 && i + j < 120) {
if (arr[i] == arr[j]) {
count++;
cout << endl << " a:" << arr[i] << "b: " << arr[j];
}
}
}
}
return count;
}
int main() {
int arr[] = {1,2,3,2,4,1,4};
int n = sizeof(arr) / sizeof(arr[0]);
cout << endl << "Valid pairs in array:" << countPairs(arr, n);
return 0;
}
আউটপুট
Valid pairs in array: a:1b: 1 a:2b: 2 a:4b: 4 3