यदि एक से दूसरे तक ग्राफ में पथ है, तो एक निर्देशित ग्राफ में दो अलग-अलग कोने दृढ़ता से जुड़े हुए हैं। ग्राफ का एक दृढ़ता से जुड़ा हुआ घटक ग्राफ का एक सबसेट होता है, जैसे कि सबसेट में अलग-अलग जोड़ की प्रत्येक जोड़ी दृढ़ता से जुड़ी होती है, और उप-वर्ग में किसी भी अधिक कोने को जोड़ने से यह संपत्ति टूट जाएगी।
आपकी चुनौती एक ग्राफ को उसके दृढ़ता से जुड़े घटकों में अलग करना है। विशेष रूप से, आपको ग्राफ़ में सभी SCCs को आउटपुट करना होगा।
मैं / हे:
इनपुट के रूप में, आप निर्देशित किनारों की सूची, एक आसन्न सूची, एक आसन्न मैट्रिक्स, या किसी अन्य उचित इनपुट प्रारूप का उपयोग कर सकते हैं। पूछें कि क्या आपको यकीन नहीं है। आप मान सकते हैं कि ग्राफ में पूरी तरह से काटे गए कोने नहीं हैं, और यह कि कोई स्वयं के किनारे नहीं हैं, लेकिन आप आगे कोई धारणा नहीं बना सकते हैं। आप इनपुट के रूप में वर्टिकल की सूची के साथ-साथ वर्टिकल की संख्या को भी वैकल्पिक रूप से ले सकते हैं।
आउटपुट के रूप में, आपको या तो कोने का एक विभाजन देना होगा, जैसे कि कोने की सूची, जहां प्रत्येक सबलिस्ट एक दृढ़ता से जुड़ा घटक है, या कोने का लेबलिंग है, जहां प्रत्येक लेबल एक अलग घटक से मेल खाता है।
यदि आप एक लेबलिंग का उपयोग करते हैं, तो लेबल या तो लंबवत होना चाहिए, या पूर्णांक का एक निरंतर अनुक्रम होना चाहिए। यह लेबल में कम्प्यूटेशन को रोकने के लिए है।
उदाहरण:
ये उदाहरण किनारों की सूची लेते हैं, जहां प्रत्येक किनारे को पहली प्रविष्टि से दूसरी प्रविष्टि और आउटपुट विभाजन के लिए निर्देशित किया जाता है। आप इस प्रारूप या किसी अन्य का उपयोग करने के लिए स्वतंत्र हैं।
इनपुट पहली लाइन पर है, आउटपुट दूसरी लाइन पर है।
[[1, 2], [2, 3], [3, 1], [1, 4]]
[[1, 2, 3], [4]]
[[1, 2], [2, 3], [3, 4]]
[[1], [2], [3], [4]]
[[1, 2], [2, 1], [1, 3], [2, 4], [4, 2], [4, 3]]
[[1, 2, 4], [3]]
[[1, 2], [2, 3], [2, 5], [2, 6], [3, 4], [3, 7], [4, 3], [4, 8], [5, 1], [5, 6], [6, 7], [7, 6], [8, 7], [8, 4]]
[[1, 2, 5], [3, 4, 8], [6, 7]]
स्कोरिंग और प्रतिबंध:
मानक खामियों पर हमेशा की तरह प्रतिबंध लगा दिया जाता है। इसके अलावा, बिल्ट-इन जो विशेष रूप से दृढ़ता से जुड़े घटकों से निपटते हैं, पर प्रतिबंध लगाया जाता है।
समाधान प्रदान किए गए उदाहरणों पर एक घंटे से अधिक नहीं चलने चाहिए। (यह धीमा घातीय समाधानों को रोकने के लिए है, और कुछ नहीं।)
यह कोड गोल्फ है। सबसे कम बाइट्स जीतता है।
8एक घटक में नहीं हूं, [3,4]क्योंकि यह केवल प्रत्येक 6और 7(जिनमें से कोई भी उस तक नहीं पहुंच सकता है) नहीं कर सकता है ।