সমস্যা বিবরণ
একটি ইন্টিজার অ্যারে দেওয়া আছে। প্রতিটি সাবসেটের সব এলিমেন্টের AND অপারেশন করুন এবং সেই সব AND মানের মধ্যে ন্যূনতমটি প্রিন্ট করুন।
উদাহরণ
যদি arr[] = {1, 2, 3, 4, 5} হয়,
তবে (1 & 2) = 0, (1 & 3) = 1, (1 & 4) = 0, (1 & 5) = 1,
(2 & 3) = 2, (2 & 4) = 0, (2 & 5) = 0, (3 & 4) = 0,
(3 & 5) = 1, (4 & 5) = 4
অ্যালগরিদম
- অ্যারের যেকোনো সাবসেটের ন্যূনতম AND মান হবে পুরো অ্যারের সব এলিমেন্টের AND।
- সুতরাং সবচেয়ে সহজ পদ্ধতি হল পুরো অ্যারের সব এলিমেন্টের AND বের করা।
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int getMinAndValue(int* arr, int n) {
int result = arr[0];
for (int i = 1; i < n; ++i)
result = result & arr[i];
return result;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Minimum value = " << getMinAndValue(arr, n) << endl;
return 0;
}
আউটপুট
Minimum value = 0