มีแม่น้ำและมีหมาป่าและไก่อยู่อีกฟากหนึ่งของแม่น้ำ พวกเขามีแพและพวกเขาทั้งหมดต้องไปที่อีกด้านหนึ่ง อย่างไรก็ตามแพไม่สามารถเดินทางได้ด้วยตัวเอง แพจะจมถ้ามีสัตว์มากกว่าสองตัวอยู่บนมัน ไม่มีสัตว์ชนิดใดที่ต้องการเปียกเพราะแม่น้ำเย็นและสกปรก ไม่มีสัตว์ชนิดใดสามารถกระโดดหรือบินข้ามแม่น้ำได้ นอกจากนี้หากมีไก่อยู่ด้านหนึ่งก็จะไม่มีหมาป่าอยู่ข้างนั้นมากกว่าที่มีไก่อยู่ข้างนั้น - หมาป่าก็จะตัดสินใจกินไก่ ซึ่งหมายความว่าคุณไม่สามารถนำหมาป่าสองตัวขึ้นไปบนแพด้วยไก่หนึ่งตัว
งานของคุณคือการสร้างโปรแกรม / ฟังก์ชั่นที่ใช้จำนวนหมาป่าและไก่จำนวนหนึ่ง (มากกว่าหรือเท่ากับจำนวนหมาป่า) เป็นอินพุตและหาจำนวนครั้งที่แพที่เล็กที่สุดจะเคลื่อนที่ข้ามแม่น้ำ หากไม่สามารถทำงานได้โปรแกรม / ฟังก์ชั่นควรแสดงผล / ส่งคืนสตริงว่าง จากนั้นจะพิมพ์ / ส่งคืนหนึ่งวิธีสำหรับวิธีนี้ในวิธีต่อไปนี้:
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
พยายามทำให้รหัสของคุณสั้นเป็นไบต์ที่สุด