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

C++ प्रोग्राम यह पता लगाने के लिए कि हम अधिकतम k रुपये में कितनी चॉकलेट खरीद सकते हैं

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है, और अन्य मान l, r और k हैं। अमल चॉकलेट खरीदना चाहता है और वह बहुत महंगी चॉकलेट नहीं खरीदेगा, और न ही बहुत सस्ती चॉकलेट। स्टोर में, अलग-अलग चॉकलेट बार हैं और कीमतों को A में दर्शाया गया है। एक चॉकलेट बार बहुत महंगा है यदि इसकी कीमत r से बड़ी है और बहुत सस्ती है यदि इसकी कीमत l से कम है। वह अधिकतम k रुपये खर्च करना चाहता है। हमें यह पता लगाना है कि वह कितनी चॉकलेट खरीद सकता है।

तो, अगर इनपुट ए =[1, 2, 3, 4, 5, 6] जैसा है; एल =3; आर =5; k =10, तो आउटपुट 2 होगा, क्योंकि वह 3 रुपये और 4 रुपये की चॉकलेट 7 रुपये से खरीद सकता है।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n := size of A
ans := 0
sort the array A
for initialize i := 0, when i < n, update (increase i by 1), do:
   if A[i] > k, then:
      Come out from the loop
   if A[i] >= l and A[i] <= r, then:
      k := k - A[i]
      (increase ans by 1)
return ans

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A, int l, int r, int k) {
   int n = A.size();
   int ans = 0;
   sort(A.begin(), A.end());
   for (int i = 0; i < n; ++i) {
      if (A[i] > k)
         break;
      if (A[i] >= l && A[i] <= r) {
         k -= A[i];
         ++ans;
      }
   }
   return ans;
}
int main() {
   vector<int> A = { 1, 2, 3, 4, 5, 6 };
   int l = 3;
   int r = 5;
   int k = 10;
   cout << solve(A, l, r, k) << endl;
}

इनपुट

{ 1, 2, 3, 4, 5, 6 }, 3, 5, 10

आउटपुट

2

  1. C++ प्रोग्राम स्कोर की अधिकतम राशि का पता लगाने के लिए जिसे ग्राफ़ से घटाया जा सकता है

    मान लीजिए, एक भारित, अप्रत्यक्ष ग्राफ है जिसमें n कोने और m किनारे हैं। ग्राफ़ के स्कोर को ग्राफ़ में सभी किनारों के वज़न के योग के रूप में परिभाषित किया गया है। किनारे के वजन नकारात्मक हो सकते हैं, और यदि उन्हें हटा दिया जाता है तो ग्राफ का स्कोर बढ़ जाता है। हमें क्या करना है, हमें ग्राफ को कनेक्ट

  1. पायथन में हम अधिकतम कितनी पानी की बोतलें पी सकते हैं, यह जानने का कार्यक्रम

    मान लीजिए कि पूर्ण पानी की बोतलों की संख्या n है, हम केवल एक पूर्ण पानी की बोतल के लिए खाली पानी की बोतलों का आदान-प्रदान कर सकते हैं। अब पानी की पूरी बोतल पीने से वह खाली बोतल बन जाती है। हमें अधिकतम संख्या में पानी की बोतलों का पता लगाना होगा जो हम पी सकते हैं। इसलिए, यदि इनपुट n =9, m =3 जैसा है

  1. पायथन में सीढ़ियाँ चढ़ने के कितने तरीके हैं (अधिकतम k बार में अधिकतम कदम) खोजने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास n चरणों वाली एक सीढ़ी है और हमारे पास एक और संख्या k भी है, शुरू में हम सीढ़ी 0 पर हैं, और हम एक बार में 1, 2 या 3 सीढ़ियां चढ़ सकते हैं। लेकिन हम अधिकतम k बार केवल 3 सीढ़ियाँ ही चढ़ सकते हैं। अब हमें यह पता लगाना है कि हम कितनी सीढ़ियाँ चढ़ सकते हैं। इसलिए, यदि इनपुट n =5, k