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

C++ में अधिकतम M उत्पादों को बेचकर लाभ को अधिकतम करें


यह देखते हुए कि कार्य अधिकतम 'M' उत्पादों को बेचकर अधिकतम लाभ की गणना करना है।

उत्पादों की कुल संख्या 'एन' है और प्रत्येक उत्पाद की लागत मूल्य और बिक्री मूल्य क्रमशः सीपी [] और एसपी [] सूचियों में दिया गया है।

इनपुट

N=6, M=4
CP[]={1,9,5,8,2,11}
SP[]={1,15,10,16,5,20}

आउटपुट

28

स्पष्टीकरण - सभी उत्पादों को बेचने से प्राप्त लाभ क्रमशः 0,6,5,8,3,9 है।

इसलिए, केवल 4 उत्पादों को बेचकर अधिकतम लाभ कमाने के लिए, सबसे अधिक लाभ वाले उत्पादों को चुनना होगा, यानी उत्पाद संख्या 2,3,4 और 6.

अधिकतम लाभ=6+5+8+9=28

इनपुट

N=3, M=2
CP[]={10,20,30}
SP[]={19,22,38}

आउटपुट

17

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • प्रत्येक उत्पाद से प्राप्त लाभ को संग्रहीत करने के लिए एक सरणी लाभ [] प्रकार int और आकार 'N' बनाएं।

  • अंतिम अधिकतम लाभ स्टोर करने के लिए एक वैरिएबल टोटल टाइप इंट बनाएं।

  • i=0 से i . तक लूप

  • लूप में रहते हुए, लाभ सेट करें [i] =Sp [i] – Cp [i]

  • कॉल फ़ंक्शन सॉर्ट (लाभ, लाभ + एन, अधिक ()); लाभ [] सरणी को अवरोही सरणी में व्यवस्थित करने के लिए।

  • फिर से i=0 से i . तक लूप करें

  • लूप में रहते हुए एक if कंडीशन सेट करें, if(Profit[i]>0) यह जांचने के लिए कि वैल्यू पॉजिटिव है या नहीं और अगर ऐसा है तो Total+=Profit[i];

    सेट करें
  • कुल वापसी;

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//Function to find profit
int MaxProfit(int N, int M, int Cp[], int Sp[]){
   int Profit[N];
   int total = 0;
   //Calculating profit from each product
   for (int i = 0; i < N; i++)
      Profit[i] = Sp[i] - Cp[i];
   //Arranging profit array in descending order
   sort(Profit, Profit + N, greater<int>());
   //Adding the best M number of profits
   for (int i = 0; i < M; i++){
      if (Profit[i] > 0)
         total += Profit[i];
      else
         break;
   }
   return total;
}
//Main function
int main(){
   int MP;
   int N=6,M=4;
   int CP[] = { 1, 9, 5, 8, 2, 11 };
   int SP[] = { 1, 15, 10, 16, 5, 20 };
   MP = MaxProfit(N, M, CP, SP);
   cout<<”Maximum Profit:”<<MP;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -

Maximum Profit: 28

  1. C++ . में भूलभुलैया III

    मान लीजिए कि खाली जगह और दीवारों के साथ एक भूलभुलैया है और उस भूलभुलैया में एक गेंद भी है। गेंद ऊपर (यू), नीचे (डी), बाएं (एल) या दाएं (आर) दिशाओं को लुढ़क कर खाली जगहों से जा सकती है, लेकिन यह दीवार से टकराने तक लुढ़कती रहती है। जब गेंद रुकती है, तो वह अगली दिशा चुन सकती है। उस भूलभुलैया में एक छेद

  1. C++ में मैट्रिक्स को फिर से आकार दें

    विभिन्न प्लेटफॉर्म में रीशेप नामक एक बहुत ही उपयोगी फ़ंक्शन है, उस फ़ंक्शन का उपयोग मैट्रिक्स को अलग-अलग आकार के साथ एक नए आकार में बदलने के लिए किया जाता है लेकिन डेटा समान होगा। इसलिए, यदि हमारे पास वांछित पुन:आकारित मैट्रिक्स की पंक्ति संख्या और स्तंभ संख्या के लिए क्रमशः एक मैट्रिक्स और दो मान r

  1. C++ में जॉब शेड्यूलिंग में अधिकतम लाभ

    मान लीजिए कि हमारे पास अलग-अलग कार्य हैं, जहां प्रत्येक कार्य प्रारंभ समय [i] से समाप्ति समय [i] तक किया जाना निर्धारित है, उस कार्य के लिए हमें लाभ का लाभ मिलता है [i]। हम स्टार्टटाइम, एंडटाइम और प्रॉफिट लिस्ट को जानते हैं, हमें अधिकतम लाभ का पता लगाना होगा जो हम इस तरह ले सकते हैं कि ओवरलैपिंग टाइ