मान लीजिए हमारे पास n तत्वों का एक ऐरे है, हमें ऐरे के दो सबसीक्वेंस चुनकर अधिकतम योग दिखाना है (वे भिन्न हो सकते हैं या नहीं) ताकि पहले सबसीक्वेंस के सभी तत्वों के बिटवाइज AND ऑपरेशन और दूसरे सबसीक्वेंस के सभी तत्वों के बिटवाइज OR ऑपरेशन का योग अधिकतम हो।
तो, यदि इनपुट A = {4, 6, 7, 2} जैसा है, तो आउटपुट 14 होगा क्योंकि हम केवल 7 को चुनकर अधिकतम AND मान प्राप्त कर रहे हैं और सभी (4 | 6 | 7 | 2) = 7 को चुनकर अधिकतम OR मान प्राप्त कर रहे हैं। तो, परिणाम 7 + 7 = 14 होगा।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
and_max := arr का अधिकतम
or_max := 0
i को 0 से arr के आकार तक के लिए, करें:
or_max := or_max OR arr[i]
and_max + or_max लौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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