একটি অ্যারে দেওয়া আছে। এর থেকে দুটি সাবসিকোয়েন্স (এরা একই বা ভিন্ন হতে পারে) বেছে নিতে হবে যেন প্রথম সাবসিকোয়েন্সের সব উপাদানের বিটওয়াইজ AND (bitwise AND) এবং দ্বিতীয় সাবসিকোয়েন্সের সব উপাদানের বিটওয়াইজ OR (bitwise OR) এর যোগফল সর্বোচ্চ হয়।
উদাহরণ
ইনপুট: A = [4, 6, 7, 2]
আউটপুট: ১৪
ব্যাখ্যা: সর্বোচ্চ AND = ৭ (শুধু ৭ বেছে নিলে), সর্বোচ্চ OR = ৭ (সব বেছে নিলে: 4|6|7|2 = ৭)। যোগফল = ৭ + ৭ = ১৪।
সমাধানের পদ্ধতি
- সর্বোচ্চ AND মান = অ্যারে-র সর্বোচ্চ উপাদান (কারণ একক উপাদান নিলেই সেটিই AND ফলাফল, একাধিক নিলে কমে যাবে)।
- সর্বোচ্চ OR মান = অ্যারে-র সব উপাদানের OR (কারণ OR যোগ করার সাথে বাড়ে বা একই থাকে)।
- উত্তর = max(arr) + (OR of all elements)
পাইথন কোড
def get_max_sum(arr):
and_max = max(arr)
or_max = 0
for i in range(len(arr)):
or_max |= arr[i]
return and_max + or_max
a = [4, 6, 7, 2]
print(get_max_sum(a))
ইনপুট
[4, 6, 7, 2]
আউটপুট
14