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

सी ++ कोड दुश्मन को मारने के लिए हथियारों के साथ न्यूनतम चाल खोजने के लिए

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है, और दूसरी संख्या H. H एक दुश्मन का स्वास्थ्य है। हमारे पास n हथियार हैं और ith हथियार की हानिकारक शक्ति A [i] है। दुश्मन को मारने के लिए विभिन्न हथियारों का इस्तेमाल किया जा सकता है। हम एक ही हथियार को लगातार दो बार इस्तेमाल नहीं कर सकते। हमें कम से कम गिनना होगा कि दुश्मन को मारने के लिए हम कितनी बार हथियारों का इस्तेमाल कर सकते हैं।

तो, अगर इनपुट ए =[2, 1, 7] जैसा है; एच =11, तो आउटपुट 3 होगा, क्योंकि अगर हम डैमेज पावर 7 के साथ हथियार का उपयोग करते हैं, तो 2 का उपयोग करें और फिर से 7 का उपयोग करें हम दुश्मन को मार सकते हैं।

कदम

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

sort the array A
n := size of A
x := (A[n - 1] + A[n - 2])
return H / x * 2 + (H mod x + A[n - 1] - 1) / A[n-1]

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int H){
   sort(A.begin(), A.end());
   int n = A.size();
   int x = (A[n - 1] + A[n - 2]);
   return H / x * 2 + (H % x + A[n - 1] - 1) / A[n - 1];
}
int main(){
   vector<int> A = { 2, 1, 7 };
   int H = 11;
   cout << solve(A, H) << endl;
}

इनपुट

{ 2, 1, 7 }, 11

आउटपुट

3

  1. C++ में न्यूनतम नाइट मूव्स

    मान लीजिए कि हमारे पास एक अनंत शतरंज की बिसात है जिसमें -infinity से +infinity तक के निर्देशांक हैं, और हमारे पास वर्ग [0, 0] पर एक नाइट है। एक शूरवीर के पास 8 संभावित चालें हैं, जैसा कि नीचे दिखाया गया है। प्रत्येक चाल एक कार्डिनल दिशा में दो वर्ग है, फिर एक वर्ग एक ओर्थोगोनल दिशा में है। हमें न

  1. C++ में निर्देशांकों के दिए गए सेट के साथ आयत का न्यूनतम क्षेत्रफल ज्ञात कीजिए

    मान लीजिए कि हमारे पास XY विमान में कुछ बिंदुओं की एक सरणी है। हमें इन बिंदुओं से बनने वाले आयत का न्यूनतम क्षेत्रफल ज्ञात करना है। आयत की भुजा X और Y अक्षों के समानांतर होनी चाहिए। यदि हम आयत नहीं बना सकते हैं, तो 0 लौटाएँ। इसलिए यदि बिंदुओं का सरणी [(1, 1), (1, 3), (3, 1), (3, 3), (2, 2)] जैसा है।

  1. C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड खोजें

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है। हमें बाइनरी सर्च ट्री में न्यूनतम तत्व खोजना है। तो अगर बीएसटी नीचे जैसा है - न्यूनतम तत्व 1 होगा। जैसा कि हम जानते हैं कि लेफ्ट सबट्री में हमेशा छोटे तत्व होते हैं। इसलिए यदि हम बाएं सबट्री को बार-बार पार करते हैं जब तक कि बाईं ओर शून्य न हो, हम सब