ในเวทย์มนตร์: กลุ่มผู้วิเศษ (เรียกว่า "planeswalkers") ต่อสู้กันโดยการร่ายคาถา คาถาต้นทุนมานา มีมานาห้าสี ได้แก่ สีขาวสีน้ำเงินสีดำสีแดงและสีเขียวแสดงเป็น {W}, {U}, {B}, {R} และ {G} ตามลำดับ
ค่าใช้จ่ายของคาถาซับซ้อนกว่าเล็กน้อย ค่าใช้จ่ายสามารถรวมกันดังต่อไปนี้:
- หนึ่งสีขึ้นไป
- ไม่มีสีหนึ่งรายการหรือมากกว่าแสดงเป็น {X} โดยที่ X เป็นจำนวนเต็มบวก
- ลูกผสมหนึ่งตัวหรือมากกว่าแสดงเป็น {Y / Z} โดยที่ Y และ Z มีทั้งสี (แสดงโดยหนึ่งในห้าตัวอักษร) หรือไม่มีสีแทนด้วยจำนวนเต็มบวก
ใช้กฎต่อไปนี้เมื่อพยายามเสกคาถา:
- สีในค่าใช้จ่ายจะต้องได้รับความพึงพอใจจากมานาหนึ่งสี
- ต้นทุนที่ไม่มีสี {X} อาจใช้ได้กับ X มานาทุกสี
- ค่าใช้จ่ายไฮบริด {Y / Z} อาจพอใจโดยการทำให้พอใจ Y หรือ Z
- โปรดทราบว่าเครื่องหมายวงเล็บไม่ซ้อนกัน
- Y และ Z ไม่ใช่ลูกผสม
เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดมานาและราคาพิมพ์หรือคืนค่าจริง (หรือบางค่าจริง) ถ้าหากมานะในกลุ่มนั้นสามารถตอบสนองต่อค่าใช้จ่ายเป็นเท็จ (หรือค่าเท็จ)
มานะพูลเป็นสตริงที่ไม่ว่างของรูปแบบ:
Color1,Color2,Color3,...,Colorn-1,Colorn
ต้นทุนคือสตริงที่ไม่ว่างของรูปแบบ:
Cost1,Cost2,Cost3,...,Costn-1,Costn
ตัวอย่าง
ในรูปแบบPool Cost -> ExpectedOutput
(มีช่องว่างระหว่าง Pool และ Cost):
{R},{R},{G},{B},{R} {4},{R} -> True
{G},{G},{G},{G},{W},{W},{W} {2/W},{2/U},{2/B},{2/R},{2/G} -> False
{G},{G},{R} {R/G},{G/B},{B/R} -> True
{R},{R},{R},{G} {1},{G},{2/G}-> True
{R} {R},{R},{R},{R},{R} -> False
{W},{R},{R} {2/W},{W/B} -> True
{U},{U} {1} -> True
{W},{R},{G} {1},{2} -> True