এখানে একটি নদী আছে এবং নদীর একপাশে নেকড়ে ও মুরগি রয়েছে। তাদের একটি ভেলা রয়েছে এবং তাদের সবারই অন্যদিকে যেতে হবে। তবে ভেলাটি নিজে থেকে ভ্রমণ করতে পারে না। এতে আরও দুটি প্রাণীর গায়ে থাকলে ভেলাটি ডুবে যাবে। নদীর শীত ও নোংরা হওয়ার কারণে কোনও প্রাণীই ভিজে যেতে চায় না। কোনও প্রাণীই নদীর উপর দিয়ে ঝাঁপ দিতে বা উড়তে পারে না। এছাড়াও, যদি একদিকে মুরগি থাকে, তবে পাশের মুরগিগুলির চেয়ে ওদিকে আরও নেকড়ে থাকতে পারে না - নেকড়েরা মুরগি খাওয়ার সিদ্ধান্ত নেবে। এর অর্থ এই যে আপনি একটি মুরগির সাথে রাফটিতে দুটি নেকড়ে নিতে পারছেন না।
আপনার কাজটি এমন একটি প্রোগ্রাম / ক্রিয়াকলাপ করা হয় যাতে বেশ কয়েকটি নেকড়ে এবং বেশ কয়েকটি মুরগি (নেকড়েদের সংখ্যার চেয়ে বড় বা সমান) নেয় এবং ভেলাটি নদীর তীরে সরে যেতে স্বল্পতম সংখ্যার সন্ধান করে। যদি কাজটি সম্ভব না হয় তবে প্রোগ্রাম / ফাংশনটি ফাঁকা স্ট্রিং আউটপুট / ফিরিয়ে দেয়। এটি নিম্নলিখিত পদ্ধতিতে এটি কীভাবে করা হয় তার একটি পদ্ধতি মুদ্রণ / ফিরিয়ে দেবে:
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
আপনি অনুমান করতে পারেন, ভেলাটি স্বয়ংক্রিয়ভাবে বিকল্প দিকগুলিতে চলে যাবে (বাম এবং ডান, প্রথম এক বা দুটি প্রাণী নদীটি অতিক্রম করার সাথে সাথে বাম থেকে ডানে শুরু হবে)। এটি আউটপুট / রিটার্ন করার দরকার নেই। আউটপুটে 'ডাব্লু', 'সি', 'সিডাব্লু', 'সিসি' বা 'ডাব্লুডাব্লু' নিম্নোক্ত যে কোনও একটি দ্বারা পৃথক করা যেতে পারে:
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
আপনার কোডটি যতটা সম্ভব বাইটে সংক্ষিপ্ত করার চেষ্টা করুন।