Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में पहली और दूसरी ऐरे से X और Y एलिमेंट्स चुनकर X+Y एलिमेंट्स के योग को अधिकतम करना


दिए गए दो ऐरे प्रत्येक आकार N के, कार्य X एलिमेंट्स को ऐरे 1 से और Y एलिमेंट्स को ऐरे 2 से चुनकर अधिकतम योग ढूंढना है।

आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है:

इनपुट

arr1 = {1,2,3,4,5}; X=2
arr2 = {1,3,5,2,7}; Y=3

आउटपुट

Maximum sum here is: 24

व्याख्या - हम arr1 से 2 नंबर और arr2 से 3 चुन रहे हैं। arr1 के सबसे बड़े 2 हैं 4,5 और arr2 के सबसे बड़े 3 हैं 3,5,7। इन 5 एलिमेंट्स का कुल योग 24 है जो आवश्यकता के अनुसार अधिकतम है।

इनपुट

arr1 = {10,13,16,14}; X=1
arr2 = {4,1,2,1}; Y=2

आउटपुट

Maximum sum here is: 22

व्याख्या - हम arr1 से 1 नंबर और arr2 से 2 चुन रहे हैं। arr1 का सबसे बड़ा 16 है और arr2 के सबसे बड़े 2 हैं 4,2। इन 3 एलिमेंट्स का कुल योग 22 है जो आवश्यकता के अनुसार अधिकतम है।

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • इनपुट ऐरे arr1[] और arr2[] और X और Y के मान लें।
  • दोनों ऐरे को आरोही क्रम में सॉर्ट करें।
  • arr1 से अंतिम X एलिमेंट्स और arr2 से अंतिम Y एलिमेंट्स लें क्योंकि ये सबसे बड़े होंगे।
  • अंत में चरण 3 में चुने गए एलिमेंट्स का योग रिटर्न करें क्योंकि यह अधिकतम होगा।
  • नोट: sort(arr[], int) माना जाता है कि सॉर्ट किया गया ऐरे रिटर्न करता है।

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;

int max_sum(int arr1[], int arr2[], int length, int X, int Y) {
    // ऐरे को सॉर्ट करने के लिए
    sort(arr1, arr1 + length);
    sort(arr2, arr2 + length);
    
    int sum = 0;
    int i;
    
    // arr1 से अंतिम X एलिमेंट्स और arr2 से अंतिम Y एलिमेंट्स जोड़ना
    for (i = 0; i < X; i++) {
        sum += arr1[length - i - 1];
    }
    for (i = 0; i < Y; i++) {
        sum += arr2[length - i - 1];
    }
    return sum;
}

// ड्राइवर प्रोग्राम
int main() {
    int arr1[] = {1, 1, 1, 3, 7};
    int arr2[] = {1, 1, 2, 3, 5};
    int x = 3, y = 2;
    cout << "Maximized sum of X+Y elements by picking X and Y elements from 1st and 2nd array is " << max_sum(arr1, arr2, 5, x, y);
    return 0;
}

आउटपुट

Maximized sum of X+Y elements by picking X and Y elements from 1st and 2nd array is 19

  1. - C++ में STL का उपयोग करके सरणी के तत्वों का योग कैसे ज्ञात करें?

    यहां हम देखेंगे कि सरणी के सभी तत्वों का योग कैसे ज्ञात करें। इसलिए यदि सरणी [12, 45, 74, 32, 66, 96, 21, 32, 27] की तरह है, तो योग होगा: 405। तो यहां हमें इस समस्या को हल करने के लिए accumulate() फ़ंक्शन का उपयोग करना होगा। इस फ़ंक्शन का विवरण <numeric> हेडर फ़ाइल में मौजूद है। उदाहरण #includ

  1. - C++ प्रोग्राम: सरणी में सबसे छोटा और दूसरा सबसे छोटा तत्व ज्ञात करना

    मान लें हमारे पास n तत्वों की एक सरणी है। हमें सरणी में पहला और दूसरा सबसे छोटा तत्व ज्ञात करना है। पहला सबसे छोटा सरणी का न्यूनतम है, दूसरा सबसे छोटा न्यूनतम है लेकिन पहले सबसे छोटे से बड़ा है। प्रत्येक तत्व को स्कैन करें, फिर तत्व की जांच करें, और पहले और दूसरे सबसे छोटे तत्वों की शर्तों को संबंध

  1. - C++ में XOR ऑपरेशन द्वारा सरणी योग न्यूनतम करें

    समस्या विवरण एक सरणी दी गई है, एक मान X ढूंढें जिससे प्रत्येक तत्व के साथ XOR करने के बाद सरणी का योग न्यूनतम हो। उदाहरण: arr = {8, 5, 7, 6, 9} यदि X = 5, तो XOR के बाद: 13, 0, 2, 3, 12 → योग = 30 (न्यूनतम) एल्गोरिदम 32-बिट बिटमैप बनाएं प्रत्येक तत्व के सेट बिट्स गिनें n/2 हैं, तो X में वह बिट