Bernd เป็นนักเรียนมัธยมปลายที่มีปัญหาทางเคมี ในชั้นเรียนเขาต้องออกแบบสมการทางเคมีสำหรับการทดลองบางอย่างที่พวกเขาทำเช่นการเผาไหม้ของ heptane:
C 7 H 16 + 11O 2 → 7CO 2 + 8H 2 O
เนื่องจากคณิตศาสตร์ไม่ใช่วิชาที่แข็งแกร่งที่สุดของ Bernd เขามักจะมีช่วงเวลาที่ยากลำบากในการหาอัตราส่วนที่แน่นอนระหว่างกระบวนการและปฏิกิริยาของปฏิกิริยา เนื่องจากคุณเป็นติวเตอร์ของ Bernd มันเป็นหน้าที่ของคุณที่จะช่วยเขา! เขียนโปรแกรมที่คำนวณปริมาณของสารแต่ละชนิดที่จำเป็นเพื่อให้ได้สมการทางเคมีที่ถูกต้อง
อินพุต
อินพุตเป็นสมการทางเคมีโดยไม่มีปริมาณ เพื่อให้เป็นไปได้ใน ASCII บริสุทธิ์เราเขียนการสมัครสมาชิกใด ๆ เป็นหมายเลขสามัญ ชื่อองค์ประกอบเริ่มต้นด้วยอักษรตัวใหญ่เสมอและอาจตามด้วยจิ๋ว โมเลกุลจะถูกคั่นด้วย+
เครื่องหมายลูกศร ASCII-art ->
ถูกแทรกระหว่างทั้งสองด้านของสมการ:
Al+Fe2O4->Fe+Al2O3
อินพุตถูกยกเลิกด้วยการขึ้นบรรทัดใหม่และจะไม่มีช่องว่างใด ๆ หากอินพุตไม่ถูกต้องโปรแกรมของคุณอาจทำสิ่งที่คุณต้องการ
คุณอาจคิดว่าอินพุตไม่เกิน 1024 อักขระ โปรแกรมของคุณอาจอ่านอินพุตจากอินพุตมาตรฐานจากอาร์กิวเมนต์แรกหรือในวิธีการนำไปปฏิบัติที่กำหนด ณ รันไทม์หากไม่สามารถทำได้
เอาท์พุต
ผลลัพธ์ของโปรแกรมของคุณคือสมการอินพุตเพิ่มขึ้นด้วยตัวเลขพิเศษ จำนวนอะตอมสำหรับแต่ละองค์ประกอบจะต้องเท่ากันทั้งสองด้านของลูกศร สำหรับตัวอย่างข้างต้นผลลัพธ์ที่ถูกต้องคือ:
2Al+Fe2O3->2Fe+Al2O3
ถ้าจำนวนโมเลกุลเท่ากับ 1 ให้ลดลง ตัวเลขต้องเป็นจำนวนเต็มบวกเสมอ โปรแกรมของคุณจะต้องมีตัวเลขเพื่อให้ผลรวมของพวกเขาน้อยที่สุด ตัวอย่างเช่นสิ่งต่อไปนี้ผิดกฎหมาย:
40Al+20Fe2O3->40Fe+20Al2O3
หากไม่มีวิธีแก้ไขให้พิมพ์
Nope!
แทน. อินพุตตัวอย่างที่ไม่มีวิธีแก้ไขคือ
Pb->Au
กฎระเบียบ
- นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดชนะ
- โปรแกรมของคุณจะต้องสิ้นสุดในเวลาที่เหมาะสมสำหรับอินพุตที่เหมาะสมทั้งหมด
กรณีทดสอบ
แต่ละกรณีทดสอบมีสองบรรทัด: อินพุตและเอาต์พุตที่ถูกต้อง
C7H16+O2->CO2+H2O
C7H16+11O2->7CO2+8H2O
Al+Fe2O3->Fe+Al2O3
2Al+Fe2O3->2Fe+Al2O3
Pb->Au
Nope!
solve(
ฟังก์ชั่นในตัวและeval(
ตีความอินพุต :)