चुनौती
आपके प्रोग्राम को 3 इनपुट लेने चाहिए:
- एक धनात्मक पूर्णांक जो चर की संख्या है,
- Nonnegative पूर्णांकों के अनियंत्रित जोड़े का एक सेट, जहां प्रत्येक जोड़ी चर के बीच एक समानता का प्रतिनिधित्व करता है, और
- एक सकारात्मक पूर्णांक जो प्रारंभिक चर का प्रतिनिधित्व करता है,
इसे नॉनजेगेटिव पूर्णांकों का एक सेट लौटाया जाना चाहिए जो सभी चर का प्रतिनिधित्व करता है जो कि प्रारंभिक चर (प्रारंभिक चर स्वयं सहित) के समान रूप से दिखाया जा सकता है।
दूसरे शब्दों में, दिए गए इनपुट N
, E
और S
, एक सेट लौटाएं Q
, जैसे:
S ∈ Q
।- तो
Z ∈ Q
और(Y = Z) ∈ E
, फिरY ∈ Q
। - तो
Z ∈ Q
और(Z = Y) ∈ E
, फिरY ∈ Q
।
इसे ग्राफ़-थ्योरी समस्या के रूप में भी व्यक्त किया जा सकता है:
अप्रत्यक्ष ग्राफ और ग्राफ में एक शीर्ष को देखते हुए, इसके जुड़े घटक में कोने सूचीबद्ध करें ।
विशेष विवरण
- आप 0-आधारित या 1-आधारित अनुक्रमण का उपयोग करना चुन सकते हैं।
- पहला इनपुट मौजूद चर की संख्या को गिनाता है, जहां चर को संख्या के रूप में दिया जाता है। वैकल्पिक रूप से, आप इस इनपुट को नहीं ले सकते हैं, इस स्थिति में यह आपकी अनुक्रमित योजना के आधार पर, या तो मौजूद उच्चतम चर सूचकांक के बराबर माना जाता है या इससे अधिक है।
- आप मान सकते हैं कि इनपुट अच्छी तरह से बना है: आपको पहले इनपुट द्वारा निर्दिष्ट सीमा से बाहर चर नहीं दिया जाएगा। उदाहरण के लिए,
3, [1 = 2, 2 = 0], 1
एक वैध इनपुट है, जबकि4, [1 = 719, 1 = 2, 3 = 2], -3
ऐसा नहीं है। - आप यह नहीं मान सकते हैं कि किसी भी चर के साथ कोई समानता जुड़ी होगी। यदि तीसरा इनपुट दिया जाता है जो "अकेला" (जिसमें कोई समानता नहीं है), सही आउटपुट एक सिंगलटन सेट है जिसमें केवल वह इनपुट होता है (क्योंकि यह स्वयं के बराबर है)।
- आप मान सकते हैं कि समानताओं में एक चर से स्वयं में समानता नहीं होगी, और एक ही समानता को कई बार नहीं दिया जाएगा (इसमें चीजें शामिल हैं जैसे
1 = 2
और2 = 1
)। - आप मान सकते हैं कि दिए गए सभी पूर्णांक आपकी भाषा की प्रतिनिधित्व योग्य सीमा के भीतर होंगे।
- आप किसी भी उचित प्रारूप में दूसरा इनपुट ले सकते हैं।
यहाँ कुछ उचित प्रारूप दिए गए हैं:
0 = 2
0 = 3
1 = 0
{(0, 2), (0, 3), (1, 0)}
[0, 2, 0, 3, 1, 0]
0 2 0 3 1 0
Graph[{{0, 2}, {0, 3}, {1, 0}}]
[0 = 2, 0 = 3, 1 = 0]
- आप किसी भी उचित प्रारूप (जैसे सेट, सूची, आदि) में आउटपुट कर सकते हैं। आदेश अप्रासंगिक है।
स्कोरिंग
यह कोड-गोल्फ है , इसलिए सबसे छोटा वैध कार्यक्रम (बाइट्स में) जीतता है।
परीक्षण मामले (0-अनुक्रमित)
3, [1 = 2, 2 = 0], 1 -> {0, 1, 2}
5, [0 = 2, 0 = 3, 1 = 2], 3 -> {0, 1, 2, 3}
6, [0 = 3, 1 = 3, 2 = 4, 5 = 1], 4 -> {2, 4}
6, [0 = 3, 1 = 3, 2 = 4, 5 = 1], 5 -> {0, 1, 3, 5}
5, [0 = 1, 2 = 0, 0 = 3, 4 = 0], 2 -> {0, 1, 2, 3, 4}
6, [0 = 1, 1 = 2, 2 = 3, 3 = 4, 4 = 5], 3 -> {0, 1, 2, 3, 4, 5}
4, [0 = 1, 1 = 2, 2 = 0], 3 -> {3}
5, [0 = 2, 2 = 4], 2 -> {0, 2, 4}
8, [], 7 -> {7}
परीक्षण मामले (1-अनुक्रमित)
3, [2 = 3, 3 = 1], 2 -> {1, 2, 3}
5, [1 = 3, 1 = 4, 2 = 3], 4 -> {1, 2, 3, 4}
6, [1 = 4, 2 = 4, 3 = 5, 6 = 2], 5 -> {3, 5}
6, [1 = 4, 2 = 4, 3 = 5, 6 = 2], 6 -> {1, 2, 4, 6}
5, [1 = 2, 3 = 1, 1 = 4, 5 = 1], 3 -> {1, 2, 3, 4, 5}
6, [1 = 2, 2 = 3, 3 = 4, 4 = 5, 5 = 6], 4 -> {1, 2, 3, 4, 5, 6}
4, [1 = 2, 2 = 3, 3 = 1], 4 -> {4}
5, [1 = 3, 3 = 5], 3 -> {1, 3, 5}
8, [], 8 -> {8}