इस ट्यूटोरियल में, हम नकारात्मक अनुमत सरणी में जोड़ीवार उत्पाद का अधिकतम योग खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे।
इसके लिए हमें पूर्णांकों वाली एक सरणी प्रदान की जाएगी। हमारा कार्य जोड़ीवार गुणा करते समय अधिकतम योग ज्ञात करना है।
उदाहरण
#include <bits/stdc++.h>
#define Mod 1000000007
using namespace std;
//finding the maximum sum
long long int findSum(int arr[], int n) {
long long int sum = 0;
//sorting the array
sort(arr, arr + n);
int i = 0;
while (i < n && arr[i] < 0) {
if (i != n - 1 && arr[i + 1] <= 0) {
sum = (sum + (arr[i] * arr[i + 1]) % Mod) % Mod;
i += 2;
}
else
break;
}
int j = n - 1;
while (j >= 0 && arr[j] > 0) {
if (j != 0 && arr[j - 1] > 0) {
sum = (sum + (arr[j] * arr[j - 1]) % Mod) % Mod;
j -= 2;
}
else
break;
}
if (j > i)
sum = (sum + (arr[i] * arr[j]) % Mod) % Mod;
else if (i == j)
sum = (sum + arr[i]) % Mod;
return sum;
}
int main() {
int arr[] = { -1, 9, 4, 5, -4, 7 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << findSum(arr, n);
return 0;
} आउटपुट
87