โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)แต่ละครั้งจะนำเหรียญออก 2 เหรียญจากกองหนึ่ง และ 1 เหรียญจากอีกกองหนึ่ง สามารถเลือกกองใดก็ได้ในแต่ละรอบ ห้ามนำเหรียญออกมากกว่าจำนวนที่เหลืออยู่ กำหนดว่าทั้งสองกองจะสามารถจบที่ศูนย์เหรียญได้หรือไม่
ให้เขียนฟังก์ชัน coin_piles(left, right)
อินพุต
left: จำนวนเหรียญในกองซ้าย
right: จำนวนเหรียญในกองขวา
เอาต์พุต
คืนค่า true หากสามารถทำให้ทั้งสองกองว่างเปล่าได้ มิฉะนั้นให้คืนค่า false
เงื่อนไข
0 ≤ left, right ≤ 1,000,000,000 กรณีที่ทั้งสองกองว่างเปล่าอยู่แล้ว ถือว่าทำสำเร็จ
ตัวอย่าง
อินพุต:
left = 4
right = 2
ผลลัพธ์ที่คาดหวัง:
expected = True
อินพุต:
long long left = 4;
long long right = 2;
ผลลัพธ์ที่คาดหวัง:
bool expected = true;
อินพุต:
long left = 4;
long right = 2;
ผลลัพธ์ที่คาดหวัง:
bool expected = true;
คำอธิบาย
นำออกแบบ (2, 1) สองครั้ง: (4, 2) → (2, 1) → (0, 0)
อินพุต:
left = 4
right = 1
ผลลัพธ์ที่คาดหวัง:
expected = False
อินพุต:
long long left = 4;
long long right = 1;
ผลลัพธ์ที่คาดหวัง:
bool expected = false;
อินพุต:
long left = 4;
long right = 1;
ผลลัพธ์ที่คาดหวัง:
bool expected = false;
คำอธิบาย
การเดินเดียวที่เป็นไปได้ครั้งแรกจะเหลือ (2, 0) ซึ่งหลังจากนั้นไม่สามารถนำเหรียญออกจากกองซ้ายจนหมดได้
แหล่งอ้างอิง
โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน