एल्गोरिथ्म्स और डेटा स्ट्रक्चर्स

ग्राफ बाइपार्टाइट (द्विविभाजित) है या नहीं, जाँचें

कोई ग्राफ बाइपार्टाइट (द्विविभाजित) तब कहलाता है, जब उसे दो रंगों से इस तरह रंगना संभव हो कि कोई भी दो जुड़े हुए vertices का रंग एक जैसा न हो।
यह जाँचना कि कोई ग्राफ बाइपार्टाइट है या नहीं, विभिन्न संरचनाओं और गुणों की पहचान करने में सहायक होता है, जिससे शेड्यूलिंग, संसाधन आवंटन और विवाद-समाधान जैसे क्षेत्रों में समस्याओं का प्रभावी समाधान किया जा सकता है। बाइपार्टाइट ग्राफ अधिकतम मिलान (maximum matching) और ग्राफ कलरिंग (graph coloring) जैसे कार्यों के लिए सरल एल्गोरिदम और बेहतर अनुकूलन (optimizations) प्रदान करते हैं।
आपको एक अनिर्देशित (undirected) ग्राफ दिया गया है जिसमें v vertices और e edges हैं। आपको यह जाँचना है कि यह ग्राफ बाइपार्टाइट है या नहीं।

इनपुट

इनपुट की पहली पंक्ति में दो पूर्णांक v (1 ≤ v ≤ 100000) और e (1 ≤ e ≤ 100000) होंगे।
इसके बाद की e पंक्तियों में प्रत्येक पंक्ति में दो पूर्णांक v1 तथा v2 (1 ≤ v1, v2 ≤ v) दिए होते हैं, जो दर्शाते हैं कि vertex v1 vertex v2 से जुड़ा है और इसका उल्टा भी सही है।

आउटपुट

यदि दिया गया ग्राफ बाइपार्टाइट है, तो प्रोग्राम Yes प्रिंट करे, अन्यथा No

उदाहरण

इनपुट
आउटपुट
2 1 2 1
Yes
3 2 2 1 1 3
Yes
3 3 1 2 1 3 2 3
No
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue