ধরি n এলিমেন্টের একটি অ্যারে আছে; আমাদের অ্যারেতে এমন জোড়ার সংখ্যা বের করতে হবে যাদের XOR ০ হবে। যেজোড়া (x, y)-র XOR ০ হলে x = y। এটি সমাধান করতে অ্যারেটি সর্ট করলে যদি দুটি সन्नিহিত এলিমেন্ট সমান হয় তবে কাউন্ট বাড়াব। যদি সব এলিমেন্ট সমান হয় তবে শেষ কাউন্ট গুনতে পারে না। সেক্ষেত্রে চেক করব শেষ এবং প্রথম এলিমেন্ট সমান কিনা, সমান হলে কাউন্ট ১ বাড়াব।
উদাহরণ কোড
#include <iostream>
#include <algorithm>
using namespace std;
int countPairs(int arr[], int n) {
int count = 0;
sort(arr, arr + n);
for (int i = 0; i < n - 1; i++) {
if (arr[i] == arr[i + 1]) {
count++;
}
}
if (arr[0] == arr[n - 1])
count++;
return count;
}
int main() {
int arr[] = {1, 2, 1, 2, 4};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Number of pairs: " << countPairs(arr, n);
}
আউটপুট
Number of pairs: 2