इस ट्यूटोरियल में, हम दिए गए ऑपरेशंस को करने के बाद ऐरे में अधिकतम संभावित उत्पाद खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे
इसके लिए हमें आकार एन की एक सरणी प्रदान की जाएगी। हमारा कार्य एन -1 संचालन करना है (ए [जे] → ए [i] * ए [जे] बदलना और एक [i] मान को हटा दें या केवल मान को हटा दें a[i] (केवल एक बार)) जैसे कि शेष मान केवल अधिकतम वाले हों।
उदाहरण
#include <bits/stdc++.h> using namespace std; //printing operations void MaximumProduct(int a[], int n) { int cntneg = 0; int cntzero = 0; int used[n] = { 0 }; int pos = -1; for (int i = 0; i < n; ++i) { if (a[i] == 0) { used[i] = 1; cntzero++; } if (a[i] < 0) { cntneg++; if (pos == -1 || abs(a[pos]) > abs(a[i])) pos = i; } } if (cntneg % 2 == 1) used[pos] = 1; if (cntzero == n || (cntzero == n - 1 && cntneg == 1)) { for (int i = 0; i < n - 1; ++i) cout << 1 << " " << i + 1 << " " << i + 2 << endl; return; } int lst = -1; for (int i = 0; i < n; ++i) { if (used[i]) { if (lst != -1) cout << 1 << " " << lst + 1 << " " << i + 1 << endl; lst = i; } } if (lst != -1) cout << 2 << " " << lst + 1 << endl; lst = -1; for (int i = 0; i < n; ++i) { if (!used[i]) { if (lst != -1) cout << 1 << " " << lst + 1 << " " << i + 1 << endl; lst = i; } } } int main() { int a[] = { 5, -2, 0, 1, -3 }; int n = sizeof(a) / sizeof(a[0]); MaximumProduct(a, n); return 0; }
आउटपुट
2 3 1 1 2 1 2 4 1 4 5