पृष्ठभूमि
मान लीजिए कि 2*n
शादी करने वाले लोग हैं , और आगे मान लीजिए कि प्रत्येक व्यक्ति n
बाधाओं के तहत वास्तव में अन्य लोगों के लिए आकर्षित होता है:
- आकर्षण सममित है ; अर्थात यदि व्यक्ति व्यक्ति
A
के प्रति आकर्षित होता हैB
, तो व्यक्ति व्यक्तिB
के प्रति आकर्षित होता हैA
। - आकर्षण प्रतिपक्षी है ; अर्थात यदि व्यक्ति
A
और व्यक्तिB
प्रत्येक व्यक्ति के प्रति आकर्षित होते हैंC
, तो व्यक्तिA
और व्यक्तिB
एक दूसरे के प्रति आकर्षित नहीं होते हैं।
इस प्रकार आकर्षण का नेटवर्क (अप्रत्यक्ष) पूर्ण द्विपदी ग्राफ बनाता है Kn,n
। हम यह भी मानते हैं कि प्रत्येक व्यक्ति उन लोगों को रैंक करता है, जिनसे वे आकर्षित होते हैं। इन्हें ग्राफ में एज वेट के रूप में दर्शाया जा सकता है।
एक शादी एक जोड़ी है (A,B)
, जहां A
और B
एक दूसरे को आकर्षित कर रहे हैं। यदि कोई दूसरा विवाह होता है तो विवाह अस्थिर होता है, जहां प्रत्येक विवाह में से एक व्यक्ति अपने साथी को तलाक दे सकता है और एक-दूसरे से विवाह कर सकता है और दोनों किसी ऐसे व्यक्ति के साथ अंत करते हैं जिसे उन्होंने अपने पूर्व साथी की तुलना में उच्च स्थान दिया है।
लक्ष्य
आपका कार्य एक संपूर्ण कार्यक्रम या फ़ंक्शन लिखना है जो प्रत्येक व्यक्ति की प्राथमिकताओं को इनपुट के रूप में लेता है और प्रत्येक व्यक्ति के लिए एक विवाह का उत्पादन करता है जैसे कि प्रत्येक विवाह स्थिर है।
इनपुट
इनपुट किसी भी सुविधाजनक प्रारूप में हो सकता है; उदाहरण के लिए, भारित ग्राफ, वरीयताओं की सूची, शब्दकोश / वर्गीकरण इत्यादि की सूची, आप वैकल्पिक रूप से इनपुट के रूप में कुल लोगों को ले सकते हैं, लेकिन किसी अन्य इनपुट की अनुमति नहीं है।
उत्पादन
आउटपुट किसी भी सुविधाजनक प्रारूप में भी हो सकता है; उदाहरण के लिए ट्यूपल्स की सूची, न्यूनतम बढ़त कवर , एक फ़ंक्शन जो प्रत्येक व्यक्ति को उनके साथी से जोड़ता है, आदि ध्यान दें कि एकमात्र बाधा यह है कि प्रत्येक विवाह स्थिर है, कोई अन्य इष्टतम आवश्यकताएं नहीं हैं।
टिप्पणियाँ
- आप विकिपीडिया या इस नंबरफाइल वीडियो
O(n^2)
पर इस समस्या को हल करने के लिए अधिक जानकारी और एक एल्गोरिथ्म पा सकते हैं । आप किसी भी एल्गोरिथ्म का उपयोग करने के लिए स्वतंत्र हैं, हालाँकि। - मानक खामियों को मना किया जाता है।
- यह कोड-गोल्फ है । सबसे छोटा उत्तर (बाइट्स में) जीतता है।