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

C++ . में सुपर वाशिंग मशीन

मान लीजिए कि हमारे पास एक पंक्ति में n सुपर वाशिंग मशीन हैं। प्रारंभ में, प्रत्येक वॉशिंग मशीन में कुछ कपड़े या खाली होते हैं। अब, प्रत्येक चाल के लिए, हम कोई भी m (1 m ≤n) वाशिंग मशीन चुन सकते हैं, और साथ ही साथ प्रत्येक वॉशिंग मशीन की एक ड्रेस उसके बगल की वाशिंग मशीन को दे सकते हैं। मान लीजिए कि हमारे पास पंक्ति में बाएं से दाएं प्रत्येक वॉशिंग मशीन में कपड़े की संख्या का प्रतिनिधित्व करने वाला एक पूर्णांक सरणी है, तो हमें सभी वाशिंग मशीनों में समान संख्या में कपड़े बनाने के लिए न्यूनतम चालें मिलनी चाहिए। अगर ऐसा करना संभव न हो तो -1 को वापस कर दें।

तो जब इनपुट [1,0,5] की तरह है, तो आउटपुट 3 होगा, ऐसा इसलिए है क्योंकि 5 से 0 भेजें, इसलिए वितरण [1, 1, 4] होगा, फिर मध्य 1 से बाएं एक, 4 1 तक, फिर यह [2,1,3] होगा, फिर 2 से 1, तो अंत में यह [2,2,2]

होगा

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

  • योग :=v के सभी तत्वों का योग
  • n :=v का आकार
  • यदि योग mod n 0 के बराबर नहीं है, तो −
    • वापसी -1
  • अनुरोध:=योग / एन, सेवानिवृत्त:=0, अतिरिक्त:=0
  • इनिशियलाइज़ i :=0 के लिए, जब i करें
  • x :=v[i]
  • अतिरिक्त :=अतिरिक्त + (x - req)
  • ret :=अधिकतम {ret, x - req, |extra|
  • रिटर्न रिटर्न
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    #include <bits/stdc++.h>
    using namespace std;
    class Solution {
    public:
       int findMinMoves(vector<int>& v) {
          int sum = accumulate(v.begin(), v.end(), 0);
          int n = v.size();
          if(sum % n != 0) return -1;
          int req = sum / n;
          int ret = 0;
          int extra = 0;
          for(int i = 0; i < n; i++){
             int x = v[i];
             extra +=( x - req);
             ret = max({ret, x - req, abs(extra)});
          }
          return ret;
       }
    };
    main(){
       Solution ob;
       vector<int> v = {2,1,6};
       cout << (ob.findMinMoves(v));
    }

    इनपुट

    {2,1,6}

    आउटपुट

    3

    1. सी++ एनम

      C++ Enum का उपयोग कैसे करें:एक गाइड एक एन्यूमरेटेड प्रकार एक उपयोगकर्ता-परिभाषित डेटा प्रकार है जिसे मानों की श्रेणी से एक मान असाइन किया जा सकता है। Enums अक्सर प्रोग्रामिंग में उपयोग किया जाता है जब एक चर केवल एक मान को विशिष्ट मानों के सेट से बाहर संग्रहीत करने में सक्षम होना चाहिए। उदाहरण के

    1. C++ प्रोग्राम ग्राफ में सुपर वर्टिस का पता लगाने के लिए

      मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं। कोने 1 से n तक गिने जाते हैं, और वे सरणी किनारों में दिए गए किनारों से जुड़े होते हैं। प्रत्येक शीर्ष का 1 से n तक की संख्या के भीतर x मान होता है जो कि सरणी मान में दिया जाता है। अब, हमें ग्राफ से अति शीर्षों का पता लगाना है। एक शीर्ष i को सु

    1. Linux पर C++ का सबसे अच्छा IDE क्या है?

      केवल टेक्स्ट एडिटर्स पर बड़े प्रोजेक्ट्स को मैनेज करना मुश्किल है। यदि आप ऐसे मामलों में आईडीई का उपयोग करते हैं तो आप अधिक उत्पादक और कम निराश होने की संभावना रखते हैं। विभिन्न प्रकार के आईडीई हैं और आपको अपनी आवश्यकताओं के अनुरूप सही का चयन करना चाहिए। Linux पर C++ के लिए एक भी सर्वश्रेष्ठ IDE नही