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

सी ++ कोड खरगोश द्वारा बॉक्स खींचने के लिए कुल समय खोजने के लिए

मान लीजिए कि हमारे पास दो निर्देशांक (x1, y1) और (x2, y2) हैं। एक खरगोश खाने का डिब्बा खींच रहा है। वह केवल 1 इकाई आकार की रस्सी के साथ रस्सी से जुड़ा हुआ है। खरगोश बॉक्स को उस स्थान पर खींचेगा जहां वह खड़ा है और उसी दिशा में रास्ते से 1 इकाई आगे बढ़ने से पहले। खरगोश बॉक्स को खींचे बिना 1 इकाई को दाएं, बाएं, ऊपर या नीचे ले जा सकता है। इस मामले में, यह बॉक्स से बिल्कुल 1 इकाई दूर होने के लिए जरूरी नहीं है। यदि वह बॉक्स को फिर से खींचना चाहता है, तो उसे बॉक्स के बगल में एक बिंदु पर जाना होगा। खरगोश किसी भी समय शुरू कर सकता है। एक इकाई को किसी भी दिशा में तय करने में 1 सेकंड का समय लगता है। हमें बॉक्स को प्रारंभ स्थान से अंत स्थान तक ले जाने के लिए आवश्यक न्यूनतम समय का पता लगाना होगा।

इसलिए, यदि इनपुट x1 =1 जैसा है; y1 =1; x2 =2; y2 =2, तो आउटपुट 4 होगा, क्योंकि खरगोश बिंदु (2,1) पर शुरू हो सकता है। यह बॉक्स को (2,1) तक खींचता है जबकि यह (3,1) में है। फिर बिना बॉक्स को खींचे (3,2) और फिर (2,2) पर चला जाता है। फिर, (2,3) पर जाते समय बॉक्स को (2,2) तक खींचे। इसमें 4 सेकंड लगते हैं।

कदम

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

s := 0
if x1 is not equal to x2 and y1 is not equal to y2, then:
   s := |x2 - x1| + |y2 - y1|
Otherwise
   s := |x2 - x1| + |y2 - y1|
return s

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
int solve(int x1, int y1, int x2, int y2){
   int s = 0;
   if (x1 != x2 && y1 != y2)
      s = abs(x2 - x1) + abs(y2 - y1) + 2;
   else
      s = abs(x2 - x1) + abs(y2 - y1);
   return s;
}
int main(){
   int x1 = 1;
   int y1 = 1;
   int x2 = 2;
   int y2 = 2;
   cout << solve(x1, y1, x2, y2) << endl;
}

इनपुट

1, 1, 2, 2

आउटपुट

4

  1. सी ++ में अंतर खोजें

    मान लीजिए कि हमारे पास दो स्ट्रिंग्स s और t हैं जिनमें केवल लोअरकेस अक्षर हैं। अब, स्ट्रिंग t यादृच्छिक फेरबदल स्ट्रिंग s द्वारा उत्पन्न होता है और फिर यादृच्छिक अनुक्रमणिका में एक और अक्षर जोड़ें। हमें उस अक्षर को खोजना है जो t में जोड़ा गया था। इसलिए, यदि इनपुट mnopq, pqmnot जैसा है, तो आउटपुट t

  1. C++ में सबसे छोटी सुपरस्ट्रिंग खोजें

    मान लीजिए कि हमारे पास स्ट्रिंग्स की एक सरणी ए है, हमें कोई भी सबसे छोटी स्ट्रिंग ढूंढनी है जिसमें ए में प्रत्येक स्ट्रिंग को सबस्ट्रिंग के रूप में शामिल किया गया हो। हम यह भी मान सकते हैं कि A में कोई स्ट्रिंग A में किसी अन्य स्ट्रिंग को प्रतिस्थापित नहीं कर रही है। इसलिए, यदि इनपुट [dbsh,,dsbbhs,

  1. सी++ में निकटतम पालिंड्रोम खोजें

    मान लीजिए कि हमारे पास एक संख्या n है, हमें निकटतम संख्या प्राप्त करनी है जो पैलिंड्रोम है। तो पैलिंड्रोम उस संख्या से कम या अधिक हो सकता है जिसका पूर्ण अंतर छोटा है। तो अगर संख्या 145 की तरह है, तो परिणाम 141 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - sn :=n का आकार यदि sn 1 के समान ह