मान लीजिए कि हमारे पास एक वलय है, जो 1 से N तक की कुछ संख्याओं से बना है। हमारे पास टो नंबर A और B भी हैं। अब, हम किसी भी स्थान पर खड़े हो सकते हैं (जैसे x) और दूरी के कुल योग (जैसे Z =X से A की दूरी + X से B तक की दूरी) के संबंध में गणना संचालन करें। हमें X को ऐसे चुनना है कि Z छोटा हो। अंत में Z का मान लौटाएं। हमें यह ध्यान रखना होगा कि X, A और B के समान नहीं होगा।
इसलिए, यदि इनपुट N =30, A =10, B =20 जैसा है, तो आउटपुट 10 होगा क्योंकि X =15 का चयन करने पर, X से A की दूरी 5 है, और से दूरी X से B 5 है। तो, कुल दूरी =5 + 5 =10.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अगर a> b गैर-शून्य है, तो
-
स्वैप ए और बी
-
-
clock_wise_dist:=b - a
-
counter_clock_wise_dist :=(a - 1) +(n - b + 1)
-
मिनिमम_डिस्ट:=न्यूनतम क्लॉक_वाइज_डिस्ट, काउंटर_क्लॉक_वाइज_डिस्ट
-
अगर न्यूनतम_डिस्ट 1 के समान है, तो
-
वापसी 3
-
-
मिनिमम_डिस्ट लौटाएं
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def get_min_z(n, a, b): if (a > b): a, b = b, a clock_wise_dist = b - a counter_clock_wise_dist = (a - 1) + (n - b + 1) minimum_dist = min(clock_wise_dist, counter_clock_wise_dist) if (minimum_dist == 1): return 3 return minimum_dist n = 30 a = 10 b = 20 print(get_min_z(n, a, b))
इनपुट
30, 10, 20
आउटपुट
10