यहां समस्या बयान कम से कम बम विस्फोटों के साथ एक इमारत के कमरों में गुंडों को मारने के लिए है। कमरों को 1 से n के रूप में लेबल किया गया है। पहले बमबारी से गुंडे घायल हो जाते हैं और दूसरे में मारे जाते हैं। जब कमरों पर बमबारी की जाती है तो गुंडे इमारत के निकटतम कमरे में विशेष रूप से पड़ोसी कमरे में भाग जाते हैं। इमारत के सभी गुंडों को मारने के लिए हमें कमरों पर बमबारी करने के लिए आवश्यक बमबारी की संख्या की गणना करनी चाहिए।
उदाहरण के साथ समझते हैं
इनपुट - कमरों की संख्या =3
आउटपुट −कुल बम विस्फोट आवश्यक हैं
4पी>
2 1 3 2
स्पष्टीकरण - यहां आवश्यक बमों की न्यूनतम संख्या 4 है। आइए मान लें कि हम पहले दूसरे कमरे में बम गिराते हैं, गुंडे खुद को बचाने के लिए पहले या तीसरे कमरे में पहुंचेंगे। फिर हम पहले कमरे पर बमबारी करते हैं, यहाँ दूसरे कमरे के हमलों से कुछ घायल गुंडे मर जाते हैं और पहले कमरे में छिपे गुंडे घायल हो जाते हैं और दूसरे कमरे में भाग जाते हैं क्योंकि यह उनके सबसे नजदीक है। अब हम यहां तीसरे कमरे में बम विस्फोट करते हैं, दूसरे कमरे में बम विस्फोट करने वाले गुंडे छिपे हुए थे, इसलिए वे तीसरे कमरे की बमबारी में मारे गए, और तीसरे कमरे में छिपे हुए गुंडे भी निकटतम कमरे यानी दूसरे कमरे में आखिरी बार बम मारेंगे। दूसरे कमरे में तीसरे और पहले कमरे के घायल गुंडे मारे जाते हैं और यह हमारा मिशन पूरा करता है।
इनपुट - कमरों की संख्या =2
आउटपुट −कुल बम विस्फोट आवश्यक हैं
3पी>
2 1 2
स्पष्टीकरण - यहां आवश्यक बमों की न्यूनतम संख्या 3 है। आइए मान लें कि हम पहले दूसरे कमरे में बम गिराते हैं, गुंडे खुद को बचाने के लिए पहले कमरे में पहुंचेंगे। फिर हम पहले कमरे पर बमबारी करते हैं, यहाँ दूसरे कमरे के हमलों से कुछ घायल गुंडे मर जाते हैं और पहले कमरे में छिपे गुंडे घायल हो जाते हैं और दूसरे कमरे में भाग जाते हैं क्योंकि यह उनके सबसे नजदीक है। अब हम यहां दूसरे कमरे पर बमबारी करते हैं। पहले कमरे की बमबारी से छिपे हुए गुंडे मारे जाते हैं और इससे हमारा मिशन पूरा होता है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है -
-
सबसे पहले कमरे की संख्या को उपयोगकर्ता से इनपुट के रूप में लिया जाता है।
-
आवश्यक बमों की संख्या की गणना (n+n/2) के रूप में की जाती है और बाद में मुद्रित की जाती है।
-
फिर हम इमारत के सभी सम कमरों पर बमबारी करते हैं और इसे छापा जाता है।
-
इसके बाद हम इमारत के विषम कमरों पर बमबारी करते हैं और बाद में उन्हें छापते हैं।
-
अंत में, हम बमबारी की प्रक्रिया को समाप्त करने के लिए इमारत के सम कमरों पर फिर से बमबारी करते हैं और परिणाम उपयोगकर्ता को प्रिंट कर दिया जाता है।
उदाहरण
public class TP{ public static void main(String[] args){ int n = 8; System.out.println("Total Bombings required"); System.out.println(n + n / 2); for (int i = 2; i <= n; i += 2) System.out.print(i + " "); for (int i = 1; i <= n; i += 2) System.out.print(i + " "); for (int i = 2; i <= n; i += 2) System.out.print(i + " "); } }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Total Bombings required 12 2 4 6 8 1 3 5 7 2 4 6 8