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