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

C++ में टीमो अटैकिंग

मान लीजिए LOL की दुनिया में, Teemo नाम का एक हीरो है और उसके हमले से उसका दुश्मन ऐश जहरीली हो सकती है। अब, मान लीजिए कि हमने ऐश की ओर टेमो की आक्रमणकारी आरोही समय श्रृंखला दी है और प्रति टेमो के आक्रमण के लिए विषाक्तता समय अवधि दी है, हमें कुल समय ज्ञात करना होगा कि ऐश जहरीली स्थिति में है। हम मान सकते हैं कि टेमो एक विशिष्ट समय बिंदु की शुरुआत में हमला करता है, और ऐश को तुरंत जहर की स्थिति में डाल देता है।

इनपुट [1,4] और 2 जैसा है, तो आउटपुट 4 होगा। तो ऐसा इसलिए है क्योंकि समय 1 पर, टेमो ऐश पर हमला करना शुरू कर देता है और ऐश को तुरंत जहर देता है। यहां यह जहरीली स्थिति समय बिंदु 2 के अंत तक 2 सेकंड तक चलेगी। और समय बिंदु 4 पर, टेमो इस दुश्मन पर फिर से हमला करता है, और ऐश को 2 सेकंड के लिए जहर की स्थिति में रखता है। तो आपको अंततः 4 आउटपुट करने की आवश्यकता है।

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

  • सेट सेट करें:=0
  • currEnd :=-1
  • n :=t का आकार
  • मैं के लिए 0 से n - 1 की सीमा में
    • प्रारंभ :=t[i], अंत :=t[i] + d – 1
    • यदि currEnd <प्रारंभ करें, तो ret :=ret + end - start + 1, currEnd =end,
    • अन्यथा रिट:=रिट + एंड - currEnd, currEnd:=end
  • रिटर्न रिटर्न

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int findPoisonedDuration(vector<int>& t, int d) {
      int ret = 0;
      int currEnd = -1;
      int n = t.size();
      for(int i = 0; i < n; i++){
         int start = t[i];
         int end = t[i] + d - 1;
         if(currEnd < start){
            ret += end - start + 1;
            currEnd = end;
         } else {
            ret += end - currEnd;
            currEnd = end;
         }
      }
      return ret;
   }
};
main(){
   vector<int> v = {1,4};
   Solution ob;
   cout << (ob.findPoisonedDuration(v, 2));
}

इनपुट

[1,4]
4

आउटपुट

4

  1. सी++ में जंप गेम वी

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है जिसे arr और एक पूर्णांक d कहा जाता है। एक चरण में हम इंडेक्स i से − . पर जा सकते हैं i + x जहां:i + x

  1. C++ में K अंक हटाएं

    मान लीजिए कि हमारे पास एक गैर-ऋणात्मक पूर्णांक संख्या है जिसे एक स्ट्रिंग के रूप में दर्शाया गया है, हमें संख्या से k अंक निकालना होगा ताकि नई संख्या सबसे छोटी संभव हो। तो अगर इनपुट “1432219” और k =3 जैसा है, तो परिणाम “1219” होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - स्टैक सेंट को पर

  1. C++ . में चार भाजक

    मान लीजिए कि हमारे पास एक पूर्णांक सरणी संख्या है, हमें उस सरणी में पूर्णांकों के भाजक का योग ज्ञात करना होगा जिसमें ठीक चार भाजक हों। तो अगर सरणी में ऐसा कोई पूर्णांक नहीं है, तो 0 लौटाएं। उदाहरण के लिए, यदि इनपुट [21, 4, 7] है, तो आउटपुट 32 होगा, क्योंकि 21 में चार भाजक हैं 1, 3, 7, 21, 4 में तीन