Bernd adalah siswa sekolah menengah yang memiliki beberapa masalah dalam kimia. Di kelas ia harus merancang persamaan kimia untuk beberapa percobaan yang mereka lakukan, seperti pembakaran heptana:
C 7 H 16 + 11O 2 → 7CO 2 + 8H 2 O
Karena matematika bukanlah subjek terkuat Bernd, ia sering kesulitan menemukan rasio yang tepat antara pro dan educts dari reaksi. Karena Anda adalah tutor Bernd, tugas Anda adalah membantunya! Tulis program, yang menghitung jumlah masing-masing zat yang dibutuhkan untuk mendapatkan persamaan kimia yang valid.
Memasukkan
Input adalah persamaan kimia tanpa jumlah. Untuk memungkinkan hal ini dalam ASCII murni, kami menulis langganan apa pun sebagai angka biasa. Nama elemen selalu dimulai dengan huruf kapital dan dapat diikuti oleh sebuah sangat kecil. Molekul dipisahkan dengan +
tanda - tanda, panah ASCII-art ->
dimasukkan di antara kedua sisi persamaan:
Al+Fe2O4->Fe+Al2O3
Input diakhiri dengan baris baru dan tidak akan berisi spasi apa pun. Jika input tidak valid, program Anda dapat melakukan apa pun yang Anda suka.
Anda dapat berasumsi, bahwa input tidak pernah lebih dari 1024 karakter. Program Anda dapat membaca input dari input standar, dari argumen pertama atau dalam implementasi yang ditentukan saat runtime jika tidak ada yang mungkin.
Keluaran
Output dari program Anda adalah persamaan input yang ditambah dengan angka tambahan. Jumlah atom untuk setiap elemen harus sama di kedua sisi panah. Untuk contoh di atas, output yang valid adalah:
2Al+Fe2O3->2Fe+Al2O3
Jika nomor untuk molekul adalah 1, jatuhkan. Angka harus selalu berupa bilangan bulat positif. Program Anda harus menghasilkan angka sedemikian sehingga jumlah mereka minimal. Misalnya, berikut ini ilegal:
40Al+20Fe2O3->40Fe+20Al2O3
Jika tidak ada solusi, cetak
Nope!
sebagai gantinya. Input sampel yang tidak memiliki solusi adalah
Pb->Au
Aturan
- Ini adalah kode-golf. Kode terpendek menang.
- Program Anda harus diakhiri dalam waktu yang wajar untuk semua input yang masuk akal.
Uji Kasus
Setiap test case memiliki dua jalur: Input dan output yang benar.
C7H16+O2->CO2+H2O
C7H16+11O2->7CO2+8H2O
Al+Fe2O3->Fe+Al2O3
2Al+Fe2O3->2Fe+Al2O3
Pb->Au
Nope!
solve(
fungsi eval(