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

C++ कोड: k से अधिक बिना कॉपी ऑपरेशन गिनें


मान लीजिए हमारे पास n तत्वों की एक सरणी A है और एक अन्य संख्या k है। n कैंडी के ढेर हैं। iवें ढेर में A[i] संख्या में कैंडी हैं। हम दो इंडेक्स i और j (i != j) पर ऑपरेशन कर सकते हैं, फिर A[i] में A[i] संख्या की और कैंडी जोड़ें (A[i] कम नहीं होगा)। हम इस ऑपरेशन को कितनी भी बार कर सकते हैं, लेकिन दुर्भाग्य से यदि कुछ ढेर में सख्ती से k से अधिक कैंडी हैं तो हम ऑपरेशन नहीं कर सकते। हमें इस ऑपरेशन को करने की अधिकतम संख्या ढूंढनी है।

उदाहरण के लिए, यदि इनपुट A = [1, 2, 3]; k = 5 है, तो आउटपुट 5 होगा, क्योंकि हम i = 0 ले सकते हैं और j = 1 के लिए हम तीन बार कर सकते हैं और j = 2 के लिए हम दो बार कर सकते हैं। तो कुल मिलाकर 5 बार।

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

ans := 0 n := size of A sort the array A for initialize i := 1, when i < n, update (increase i by 1), do:     ans := ans + (k - A[i]) return ans

उदाहरण

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

#include  using namespace std; int solve(vector A, int k){     int ans = 0;     int n = A.size();     sort(A.begin(), A.end());     for (int i = 1; i < n; i++){         ans += (k - A[i]) / A[0];     }     return ans; } int main(){     vector A = { 1, 2, 3 };     int k = 5;     cout << solve(A, k) << endl; }

इनपुट

{ 1, 2, 3 }, 5

आउटपुट

5

  1. - C++ प्रोग्राम: संख्या n को 1 बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या गिनें

    मान लीजिए हमारे पास एक संख्या n है। हम इनमें से कोई एक संक्रिया मनमाने ढंग से कई बार करते हैं: n को n/2 से बदलें जब n 2 से विभाज्य हो n को 2n/3 से बदलें जब n 3 से विभाज्य हो n को 4n/5 से बदलें जब n 5 से विभाज्य हो हमें संख्या 1 बनाने के लिए आवश्यक न्यूनतम चालों की संख्या गिननी है। यदि संभव नहीं ह

  1. - C++ में 3 या 7 के गुणज

    एक संख्या n दी गई है, हमें n तक 3 या 7 के गुणजों की संख्या ज्ञात करनी है। आइए एक उदाहरण देखते हैं। इनपुट 100 आउटपुट 43 100 तक 3 या 7 के कुल 43 गुणज हैं। एल्गोरिदम संख्या n आरंभ करें। काउंट को 0 पर आरंभ करें। एक लूप लिखें जो 3 से n तक पुनरावृति करता है। यदि वर्तमान संख्या 3 या 7 से विभाज्य है त

  1. - बाइनरी स्ट्रिंग को "ab" मुक्त बनाने के लिए आवश्यक संक्रियाओं की गणना करने का C++ प्रोग्राम

    समस्या विवरण हमें एक स्ट्रिंग दी गई है जिसमें ab पैटर्न हो सकता है। लक्ष्य ab को हटाने/मिटाने के लिए आवश्यक संक्रियाओं की संख्या ज्ञात करना है। प्रत्येक संक्रिया में ab को bba से प्रतिस्थापित किया जाता है। प्रक्रिया तब तक चलती है जब तक स्ट्रिंग ab मुक्त न हो जाए। उदाहरण इनपुट: str = ababaa आउटपुट: