मेरे पड़ोसी का पता करो


11

इनपुट में पड़ोसी जानकारी के साथ i पंक्तियाँ हैं। प्रत्येक मैं वें पंक्ति के पड़ोसी का प्रतिनिधित्व करने, 4 मान हैं मैं करने के लिए उत्तर , पूर्व , दक्षिण और पश्चिम दिशा-निर्देश, क्रमशः। इसलिए प्रत्येक मान पंक्ति 1 से शुरू होने वाली i वें पंक्ति की दी गई दिशा में एक पड़ोसी का प्रतिनिधित्व करता है , और 65,535 पंक्तियों तक जा सकता है। 0 मूल्य उस दिशा के लिए कोई पड़ोसी इंगित करता है।

उदाहरण के लिए, यदि पहली पंक्ति "0 2 3 10" है, तो इसका मतलब है कि i पड़ोसी के तीन अन्य पड़ोसी हैं: उत्तर में कोई नहीं, पड़ोसी 2 पूर्व में, पड़ोसी 3 दक्षिण में और पड़ोसी 10 पश्चिम में।

आपको पड़ोसी के सरणी को आउटपुट करने की आवश्यकता है, जो उस मूल्य से शुरू होता है जो उत्तर पश्चिम में सबसे अधिक है। प्रत्येक पड़ोसी को केवल एक बार प्रदर्शित किया जाएगा, दूसरों के सापेक्ष उसकी स्थिति पर। आइए देखते हैं कुछ उदाहरण:

इनपुट:

0 0 0 0

कोई पड़ोसी (खाली मामला), आउटपुट:

1

इनपुट:

0 2 0 0 
0 0 0 1

1 में पूर्व से 2 पड़ोसी हैं। 2 में 1 पश्चिम में पड़ोसी है

आउटपुट:

1 2

इनपुट:

0 2 0 0
0 0 3 1
2 0 0 0

1 में पूर्व से 2 पड़ोसी हैं। 2 में पश्चिम में 1 और दक्षिण में 3 पड़ोसी हैं। 3 के उत्तर में पड़ोसी 2 है

आउटपुट:

1 2
  3

इनपुट:

2 0 0 0
0 0 1 0

आउटपुट:

2
1

इनपुट:

0 2 3 0
0 0 4 1
1 4 0 0
2 0 0 3

आउटपुट:

1 2
3 4

नियम:

  • टेस्ट मामलों को एक खाली लाइन द्वारा अलग किया जाता है । विभिन्न परीक्षण मामलों के आउटपुट को एक खाली लाइन द्वारा अलग किया जाना चाहिए।
  • आउटपुट ग्राफ हमेशा जुड़ा रहता है। आपके पास केवल 1 से 2 पड़ोसी नहीं हैं, 3 पड़ोसी के साथ केवल 4 (1-2 घटक से पृथक) हैं।
  • सभी प्रविष्टियाँ मान्य हैं। अमान्य प्रविष्टियों का उदाहरण:
    • रिक्त स्थान, रेखा विराम और अंकों (0-9) से भिन्न अक्षरों या किसी भी चिन्ह वाली प्रविष्टियाँ।
    • मैं वें पंक्ति शामिल करते हुए मैं वें मूल्य (क्योंकि एक का अपना पड़ोसी नहीं किया जा सकता)।
    • नकारात्मक मान या मान 65,535 से अधिक है।
    • एक पंक्ति में चार से कम मान।
    • एक पंक्ति में चार से अधिक मान।
    • एक ही पड़ोसी दो अलग-अलग दिशाओं की ओर इशारा करता है (उदा: 0 1 1 0 0)।

स्टैंडर्ड लूपहोल्स लागू होते हैं, और बाइट्स जीत में सबसे छोटा जवाब होता है।


4
टेस्ट मामलों को एक खाली लाइन द्वारा अलग किया जाता है - यह एक असामान्य आवश्यकता है। आम तौर पर यह दिया जाता है कि चुनौती प्रविष्टियाँ एक बार में एक टेस्टकेस को संभालेंगी (एक प्रति आह्वान)। यदि चुनौती प्रविष्टियाँ एक समय में एक से अधिक टेस्टकेस को संभाल सकती हैं, तो बहुत बढ़िया, लेकिन कड़ाई से यह निर्दिष्ट करने के लिए बहुत कम मूल्य है कि कितने टेस्टकेस एंट्रीज़ को फॉर्मेट किया जाना चाहिए।
डिजिटल ट्रामा

1
@ आप इसे पूरी तरह से हटा सकते हैं (यदि आप चाहते हैं), संशोधन इतिहास चैंज की देखभाल करता है
रॉड

1
मुझे समझ नहीं आता कि आउटपुट आउटपुट से कैसे संबंधित है। क्या आप और अधिक विस्तार से बता सकते हैं कि "पड़ोसियों की सरणी" का क्या अर्थ है, और इस सरणी को किन नियमों द्वारा बनाया जाना चाहिए?
स्टीवी ग्रिफिन

3
आआआआह, मुझे लगता है कि मुझे मिल गया। आस-पास के लोग सहमे हुए हैं 1,2,...। हालाँकि, उनके पास पूर्व में 2 "यूनिट" और दक्षिण में 1 "यूनिट" थी। इसका कोई मतलब नहीं निकल सका।
स्टीवी ग्रिफिन

2
@StewieGriffin हां मुझे यह स्पष्ट होने से पहले कुछ समय के माध्यम से पढ़ना था
डिजिटल ट्रामा

जवाबों:


2

पायथन 2 , 152 बाइट्स

l=input()
def f(x,y,n):
 if m[x][y]<n:m[x][y]=n;[f(i%3-1+x,i/3-1+y,h)for h,i in zip(l[n-1],[3,7,5,1])]
e=len(l)
m=eval(`[[0]*e*2]*e*2`)
f(e,e,1)
print m

इसे ऑनलाइन आज़माएं!

इनपुट ऑर्डर NESW
fघरों को आबाद करने के लिए एक पुनरावर्ती कार्य है


क्षमा करें, यह काम नहीं कर रहा है। मैंने आपके इनपुट प्रारूप के साथ भी प्रयास किया (जो मुझे लगता है कि यह ठीक है): [[०, ५, २, ०], [१, ६, ३, ०], [२, input, ४, ०], [३, input] , 0, 0], [0, 9, 6, 1], [5, 10, 7, 2], [6, 11, 8, 3], [7, 12, 0, 4], [0, 13 , 10, 5], [9, 14, 11, 6], [10, 15, 12, 7], [11, 16, 0, 8], [0, 17, 14, 9], [13, 18 , 15, 10], [14, 19, 16, 11], [15, 20, 0, 12], [0, 21, 18, 13], [17, 22, 19, 14], [18, 23 , 20, 15], [19, 24, 0, 16], [0, 0, 22, 17], [21, 0, 23, 18], [22, 0, 24, 19], [23, 0 , 0, 20]]
अराजक

@ मुझे लगता है कि ठीक है शायद आउटपुट स्वरूप संतोषजनक नहीं है?
रॉड

ठीक है, मैं वहाँ उन सभी शून्य के साथ खो गया। मुझे लगता है कि उन्हें हटाने के लिए बेहतर होगा, लेकिन मुझे गोल्फ मानक नियमों को कोड करने की आदत नहीं है।
अराजक

क्या आप सिर्फ अप्रयुक्त स्थान रह गए हैं?
l4m2

2
  • अभी भी गोल्फ :)

जावास्क्रिप्ट (Node.js) , 135 बाइट्स

R=>R.map((t,y)=>r.map((T,Y)=>T.map((X,I)=>X==y+1?[-1,1,1,-1].map((x,i)=>t[i]?(r[a=Y+x*-~i%2]=r[a]||[])[I+x*i%2]=t[i]:0):0)),r=[[1]])&&r

इसे ऑनलाइन आज़माएं!

_______________________________________________________________

दूसरा तरीका

जावास्क्रिप्ट (Node.js) , 130 बाइट्स

f=(R,x=0,y=0,c=1,r=[[]])=>[-1,1,1,-1].map((d,i)=>(t=R[c-1][i])&&!(r[Y=y+d*-~i%2]=r[Y]||[])[X=x+d*i%2]?f(R,X,Y,t,r):0,r[y][x]=c)&&r

इसे ऑनलाइन आज़माएं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.