এই সমস্যায়, আমাদেরকে পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। আমাদের কাজ হল একটি অ্যারের সমস্ত ট্রিপলেটের মধ্যে XOR-এর সর্বোচ্চ মান তৈরি করা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট − অ্যারে ={5, 6, 1, 2}
আউটপুট − 6
ব্যাখ্যা −
All triplets are: 5^6^1 = 2 5^6^2 = 1 5^1^2 = 6 6^1^2 = 5
এই সমস্যাটি সমাধান করার জন্য, একটি সরাসরি পন্থা হবে সমস্ত সম্ভাব্য ট্রিপলেটের XOR খুঁজে বের করা এবং সব ট্রিপলেটের সর্বাধিক প্রিন্ট করা। এটি কার্যকর হবে না যদি আমরা অ্যারেতে প্রচুর সংখ্যক উপাদান সহ একটি অ্যারের সাথে কাজ করি৷
৷সর্বাধিক XOR খুঁজে পেতে, আমরা প্রথমে একটি সেট তৈরি করব যাতে সমস্ত জোড়া উপাদানগুলির XOR রয়েছে। তারপর আমরা সমস্ত জোড়া এবং উপাদানের মধ্যে XOR খুঁজে বের করব এবং সর্বাধিক XOR-এর সন্ধান করব।
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
#include <bits/stdc++.h> using namespace std; int MaxTripletXor(int n, int a[]){ set<int> XORpair; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { XORpair.insert(a[i] ^ a[j]); } } int maxXOR = 0; for (auto i : XORpair) { for (int j = 0; j < n; j++) { maxXOR = max(maxXOR, i ^ a[j]); } } return maxXOR; } int main(){ int matrix[] = {1, 2, 3, 5, 7}; int n = sizeof(matrix) / sizeof(matrix[0]); cout<<"The maximum XOR sum triplets is "<<MaxTripletXor(n, matrix); return 0; }
আউটপুট
The maximum XOR sum triplets is 7