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

सी ++ कोड पहले ढेर पर अधिकतम घास-गांठों की गणना करने के लिए

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है और दूसरा मान d है। एक किसान ने फर्म पर n haybalepiles की व्यवस्था की है। Ith ढेर में A[i] घास की गांठें होती हैं। हर दिन एक गाय किसी भी ढेर में एक घास की गठरी को बगल के ढेर में ले जाने का विकल्प चुन सकती है। गाय इसे एक दिन में कर सकती है अन्यथा कुछ भी नहीं करती है। गाय पहले ढेर में घास की गांठों को d दिनों में अधिकतम करना चाहती है। हमें पहले ढेर पर घास की गांठों की अधिकतम संख्या गिननी है।

इसलिए, यदि इनपुट d =5 जैसा है; ए =[1, 0, 3, 2], तो आउटपुट 3 होगा, क्योंकि पहले दिन 3 से 2 तक, दूसरे दिन फिर से 3 से दूसरे पर, फिर अगले दो दिनों में, 2 से पहले पास करें।

कदम

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

a0 := A[0]
n := size of A
for initialize i := 1, when i < n, update (increase i by 1), do:
   ai := A[i]
   w := minimum of ai and d / i
   a0 := a0 + w
   d := d - w * i
return a0

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
int solve(int d, vector<int> A){
   int a0 = A[0];
   int n = A.size();
   for (int i = 1; i < n; i++){
      int ai = A[i];
      int w = min(ai, d / i);
      a0 += w;
      d -= w * i;
   }
   return a0;
}
int main(){
   int d = 5;
   vector<int> A = { 1, 0, 3, 2 };
   cout << solve(d, A) << endl;
}

इनपुट

5, { 1, 0, 3, 2 }

आउटपुट

3

  1. C++ कोड k . से अधिक के बिना प्रतिलिपि संचालन की गणना करने के लिए

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

  1. सी ++ कोड अधिकतम अंक खोजने के लिए हम पहले छात्र को असाइन कर सकते हैं

    मान लीजिए कि हमारे पास n तत्वों और एक संख्या m के साथ एक सरणी A है। एनीक्सम देने वाले n छात्र हैं। उच्चतम संभव स्कोर एम है। ए [i] ith छात्र का स्कोर है। हम प्रत्येक छात्र के स्कोर में हेरफेर कर सकते हैं, लेकिन शर्तों को पूरा करना होगा। स्कोर m से अधिक नहीं होगा, सभी स्कोर पूर्णांक हैं और सभी छात्रों

  1. सी ++ में अधिकतम विशिष्ट तत्वों वाले बाद के चरणों की संख्या

    हमें एक सरणी दी गई है arr[] जिसमें केवल पूर्णांक हैं। लक्ष्य गिरफ्तारी के बाद की संख्या का पता लगाना है [] जैसे कि उनके पास अधिकतम संख्या में अलग-अलग तत्व हों। यदि सरणी [4,1,2,3,4] है तो उसके बाद के दो क्रम [4,1,2,3] और [1,2,3,4] होंगे। आइए उदाहरणों के साथ समझते हैं इनपुट - गिरफ्तारी [] ={ 1,3,5,4