मैनहट्टन दूरी एक नियमित ग्रिड पर ओर्थोगोनल चरणों एक दूसरे से एक कक्ष तक पहुंचने के लिए लेने की जरूरत की संख्या है। ऑर्थोगोनल चरण वे हैं जो ग्रिड कोशिकाओं के किनारों से गुजरते हैं (जैसा कि कोनों के विपरीत है, जो हमें चेबीशेव दूरी देगा )।
हम अन्य ग्रिड पर समान दूरी को परिभाषित कर सकते हैं, उदाहरण के लिए त्रिकोणीय ग्रिड। हम निम्नलिखित अनुक्रमण योजना के साथ ग्रिड में व्यक्तिगत कोशिकाओं को संबोधित कर सकते हैं, जहां प्रत्येक कोशिका में एक x,y
जोड़ी होती है:
____________________________________...
/\ /\ /\ /\ /\
/ \ 1,0/ \ 3,0/ \ 5,0/ \ 7,0/ \
/ 0,0\ / 2,0\ / 4,0\ / 6,0\ / 8,0\
/______\/______\/______\/______\/______\...
\ /\ /\ /\ /\ /
\ 0,1/ \ 2,1/ \ 4,1/ \ 6,1/ \ 8,1/
\ / 1,1\ / 3,1\ / 5,1\ / 7,1\ /
\/______\/______\/______\/______\/___...
/\ /\ /\ /\ /\
/ \ 1,2/ \ 3,2/ \ 5,2/ \ 7,2/ \
/ 0,2\ / 2,2\ / 4,2\ / 6,2\ / 8,2\
/______\/______\/______\/______\/______\...
\ /\ /\ /\ /\ /
\ 0,3/ \ 2,3/ \ 4,3/ \ 6,3/ \ 8,3/
\ / 1,3\ / 3,3\ / 5,3\ / 7,3\ /
\/______\/______\/______\/______\/___...
/\ /\ /\ /\ /\
. . . . . . . . . .
. . . . . . . . . .
अब इस ग्रिड पर मैनहट्टन की दूरी फिर से एक सेल से दूसरे तक पहुंचने के लिए किनारों पर न्यूनतम कदम है। तो तुम से ले जा सकते हैं 3,1
करने के लिए 2,1
, 4,1
या 3,2
, है, लेकिन किसी भी अन्य त्रिकोण के लिए नहीं जाएं, क्योंकि वे नहीं बल्कि किनारों से अंक को पार किया जाएगा।
उदाहरण के लिए, से दूरी 2,1
के लिए 5,2
है 4
। सबसे छोटा रास्ता आम तौर पर अद्वितीय नहीं है, लेकिन 4 चरणों में दूरी बनाने का एक तरीका है:
2,1 --> 3,1 --> 3,2 --> 4,2 --> 5,2
चुनौती
दो समन्वित जोड़ों को देखते हुए और उपरोक्त संबोधित करने वाली योजना से, उनके बीच मैनहट्टन की दूरी वापस करें।x1,y1
x2,y2
आप मान सकते हैं कि सभी चार इनपुट गैर-नकारात्मक पूर्णांक हैं, प्रत्येक 128 से कम है। आप उन्हें किसी भी क्रम में और मनमाने ढंग से समूहीकृत कर सकते हैं (चार अलग-अलग तर्क, चार पूर्णांक की एक सूची, पूर्णांक के दो जोड़े, एक 2x2 मैट्रिक्स,)। ।)।
आप एक प्रोग्राम या फ़ंक्शन लिख सकते हैं और इनपुट प्राप्त करने और आउटपुट प्रदान करने के किसी भी मानक तरीके का उपयोग कर सकते हैं।
आप किसी भी प्रोग्रामिंग भाषा का उपयोग कर सकते हैं , लेकिन ध्यान दें कि इन खामियों को डिफ़ॉल्ट रूप से मना किया गया है।
यह कोड-गोल्फ है , इसलिए सबसे छोटा वैध उत्तर - बाइट्स में मापा जाता है - जीतता है।
परीक्षण के मामलों
प्रत्येक परीक्षण मामले के रूप में दिया जाता है ।x1,y1 x2,y2 => result
1,2 1,2 => 0
0,1 1,1 => 1
1,0 1,1 => 3
2,1 5,2 => 4
0,0 0,127 => 253
0,0 127,0 => 127
0,0 127,127 => 254
0,127 127,0 => 254
0,127 127,127 => 127
127,0 127,127 => 255
75,7 69,2 => 11
47,58 36,79 => 42
77,9 111,23 => 48
123,100 111,60 => 80
120,23 55,41 => 83
28,20 91,68 => 111
85,107 69,46 => 123
16,25 100,100 => 159
62,85 22,5 => 160
92,26 59,113 => 174
62,22 35,125 => 206
(a,b,x,y)->c(a,b,x,y,0)
( पांचवें तर्क के रूप में) अलग विधि को जोड़ने की आवश्यकता नहीं होगी । c
0