नदी है और नदी के एक तरफ भेड़िये और मुर्गियां हैं। उनके पास एक बेड़ा है और उन्हें सभी को दूसरी तरफ लाने की आवश्यकता है। हालाँकि, बेड़ा अपने आप यात्रा नहीं कर सकता है। अगर दो से अधिक जानवर उस पर हैं, तो यह दरार डूब जाएगी। कोई भी जानवर गीला नहीं होना चाहता क्योंकि नदी की ठंड और गंदी है। कोई भी जानवर नदी पर कूद या उड़ नहीं सकता है। इसके अलावा, अगर एक तरफ मुर्गियां हैं, तो उस तरफ अधिक भेड़िये नहीं हो सकते हैं, उस तरफ मुर्गियां हैं - फिर भेड़िये मुर्गियों को खाने का फैसला करेंगे। इसका मतलब है कि आप एक मुर्गी के साथ दो भेड़ियों को एक तरफ नहीं उठा सकते।
आपका कार्य एक प्रोग्राम / फ़ंक्शन बनाना है जो इनपुट के रूप में कई भेड़ियों और कई मुर्गियों (भेड़ियों की संख्या के बराबर या उससे अधिक) लेता है और नदी के उस पार जाने के लिए सबसे छोटी संख्या का पता लगाता है। यदि कार्य संभव नहीं है, तो प्रोग्राम / फ़ंक्शन को खाली स्ट्रिंग आउटपुट / वापस करना चाहिए। इसके बाद यह एक तरीका प्रिंट / रिटर्न करेगा कि यह निम्नलिखित तरीके से कैसे किया जाता है:
W if a wolf crosses the river on its own
C if a chicken crosses the river on its own
CW if a chicken and a wolf cross the river -- WC is also fine
CC if two chickens cross the river
WW if two wolves cross the river
जैसा कि आप कटौती कर सकते हैं, बेड़ा स्वचालित रूप से बारी-बारी से दिशाओं में आगे बढ़ेगा (बाएं और दाएं, बाएं से दाएं शुरू होता है क्योंकि पहले एक या दो जानवर नदी पार करते हैं)। यह आउटपुट / वापस करने की आवश्यकता नहीं है। आउटपुट में 'W', 'C', 'CW', 'CC' या 'WW' को निम्न में से कम से कम एक से अलग किया जा सकता है:
spaces (' ')
commas (',')
newlines
वैकल्पिक रूप से, आप निर्देशों को एक सूची में आइटम के रूप में संग्रहीत कर सकते हैं (एक खाली सूची का अर्थ है कोई समाधान नहीं)।
परीक्षण के मामले (कॉमा द्वारा अलग किए गए आउटपुट - इनपुट रूप लेता है wolves,chickens
):
1,1 -> CW
2,2 -> CW,C,CC,C,CW
1,2 -> CW,W,CW
0,10 -> CC,C,CC,C,CC,C,CC,C,CC,C,CC,C,CC,C,CC,C,CC
3,2 -> no solution
अपने कोड को यथासंभव बाइट्स में छोटा करने का प्रयास करें।