स्विच पलटें


17

जब आप एक अंधेरे कमरे में जागते हैं, तो आपको संबंधित स्विच के साथ रोशनी का एक आयताकार ग्रिड दिखाई देता है। आप नीचे बायीं रोशनी का प्रतिनिधित्व (1,1) के साथ एक समन्वय प्रणाली का उपयोग करने का निर्णय लेते हैं और आपके ऊपर (y दिशा) और दाईं ओर (x दिशा) जाते हुए निर्देशांक बढ़ते जा रहे हैं। ग्रिड समान हैं (a, b) टॉगल पर स्विच को flipping पर (a, b से चालू या बंद) पर (a, b) और साथ ही कॉलम या उसी पंक्ति में रोशनी ए, बी)।

आपका इनपुट दो अलग-अलग वर्णों का एक आयताकार ग्रिड होगा, जो क्रमशः और बंद का प्रतिनिधित्व करता है (मैं क्रमशः 1 और 0 का उपयोग करता हूं)। इसके अलावा, इनपुट का एक हिस्सा कम से कम एक समन्वित जोड़ी (जो भी प्रारूप और जुदाई चाहते हैं) की एक श्रृंखला होगी जो कि आपके द्वारा फ्लिप किए जाने वाले स्विच का प्रतिनिधित्व करेगा।

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


नमूने

नमूना इनपुट 1

111111
111111
111111
111111

(3,2)

नमूना उत्पादन 1

110111
110111
000000
110111

नमूना इनपुट 2

01101
10100
00010
11111
10110

(1,1), (5,5)

नमूना उत्पादन 2

00010
00101
10011
01110
01000

नमूना इनपुट 3

1

(1,1)

नमूना आउटपुट 3

0

नमूना इनपुट 4

00000
11111
00000
11111

(2,3), (2,3)

नमूना उत्पादन 4

00000
11111
00000
11111

यह कोड गोल्फ है। मानक नियम लागू होते हैं। बाइट्स में सबसे छोटा कोड जीतता है।


सम्बंधित: codegolf.stackexchange.com/questions/65738/crack-the-safe । हालांकि यह समस्या नहीं है। दूसरी चुनौती का लक्ष्य यह पता लगाना था कि कौन सी चाल चलनी है, यह एक दी गई सूची को लागू करने के बारे में है।
रेटो कोराडी

@RetoKoradi यह भी नहीं है काफी समान ऑपरेशन नहीं है। (यह तथ्य कि चुना हुआ सेल खुद भी टॉगल किया जाता है, इससे काफी मुश्किल होती है।)
मार्टिन एंडर

क्या मैं इनपुट का अनुरोध कर सकता हूं <grid><RETURN><coordinate_x><RETURN><coordinate_y><RETURN>?
बिल्ली

जो भी प्रारूप और जुदाई : इसका मतलब है कि वे अलग-अलग इनपुट हो सकते हैं (अर्थात, "विभाजक" "दर्ज करें" कुंजी है)?
लुइस मेन्डो

@LuisMendo हाँ, अगर वह काम करता है।
EEEEEEridan

जवाबों:


3

सीजेएम, 37 36 बाइट्स

qN/W%(~{1$::!\{1a\Te[f.|z}/..^}/W%N*

इनपुट में ग्रिड पहले होना चाहिए, किसी भी दो गैर-पूर्ण वर्णों का उपयोग करके जो केवल पिछले बिट (इसलिए 0और 1काम) में भिन्न होते हैं , इसके बाद समन्वय जोड़े की सीजेएम-शैली सूची होती है।

01101
10100
00010
11111
10110
[[1 1] [5 5]]

इसका परीक्षण यहां करें।


3

दिल्लोग एपीएल, 20 बाइट्स

{⍵≠⊃⊃≠/∘.∨/¨⍺=⊂⍳¨⍴⍵}

यह एक डाइएडिक फ़ंक्शन है जो दाईं ओर प्रारंभिक ग्रिड और बाईं ओर निर्देशांक की सूची लेता है।

एक एकल समन्वित जोड़ी को इनपुट करने के लिए, उदाहरण (⊂2 3)के लिए बाएं तर्क के रूप में उपयोग करें ।

इसे यहाँ आज़माएँ ।


1

MATL , 39 बाइट्स

i,-1H$X!tyZ}:XJx:!XIxi"I@1)=J@2)=|+]2\X!

इनपुट निम्न रूप का है (उदाहरण चुनौती में नमूना इनपुट 2 से मेल खाता है):

[0 1 1 0 1; 1 0 1 0 0; 0 0 0 1 0; 1 1 1 1 1; 1 0 1 1 0]  
[1 5; 1 5]

पहले इनपुट एक मैट्रिक्स के ग्रिड को परिभाषित है 0और 1;पंक्ति विभाजक है। दूसरा इनपुट समन्वित जोड़े का एक मैट्रिक्स है, जहां प्रत्येक कॉलम एक जोड़ी है।

उदाहरण

>> matl i1_2$X!tyZ}:XJx:!XIxi"I@1)=J@2)=|+]2\X!
> [0 1 1 0 1; 1 0 1 0 0; 0 0 0 1 0; 1 1 1 1 1; 1 0 1 1 0]
> [1 5; 1 5]
0 0 0 1 0
0 0 1 0 1
1 0 0 1 1
0 1 1 1 0
0 1 0 0 0

व्याख्या

i,           % input matrix
-1H$X!       % rotate clockwise to accomodate input to matrix coordinates
tyZ}         % get numbers of rows (r) and of cols (c)
:XJx         % row vector 1,2,,...,c. Copy to clipboard J and delete
:!XIx        % col vector 1,2,,...,r. Copy to clipboard I and delete
i            % input coordinates (matrix; each col is a coordinate)
"            % for each col of coordinate matrix
    I@1)=    % compare col vector of rows with row from coordinate
    J@2)=    % compare row vector of cols with col from coordinate
    |        % "or" with singleton expansion to generate mask
    +        % add that to matrix of values
]            % end for
2\           % modulo 2 to transform result into zeros and ones
X!           % undo rotation

कृपया मुझे बताएं कि क्या कोई ऑनलाइन संकलक मैट के लिए उपलब्ध है
Abr001am

अभी तक ऑनलाइन नहीं है, क्षमा करें। केवल मैटलैब-आधारित जिसे मैंने शीर्षक में जोड़ा था
लुइस मेंडो

0

रूबी 114 बाइट्स

इनपुट के रूप में लेता है:

g, शुरुआती ग्रिड का प्रतिनिधित्व करने वाले सरणियों की एक सरणी।

o, अंकों की एक सरणी, प्रत्येक बिंदु दो तत्वों के साथ एक सरणी है, जैसे [x, y]

->g,o{o.map{|i|(r=g[i[1]-1])[e=(i[0]-1)]-=1;r.map!{|j|j+1};g.map{|x|x[e]+=1}};puts g.map{|i|i.map{|j|j%2}.join""}}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.