You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.3 KiB
58 lines
1.3 KiB
9 years ago
|
replacements, molecule = DATA.read.chomp.split("\n\n")
|
||
9 years ago
|
replacements = replacements.scan(/(\w+) \=> (\w+)/).map(&:reverse).sort_by {|k,_| -k.size}
|
||
|
|
||
|
steps = 0
|
||
|
until molecule == ?e
|
||
|
k,v = replacements.find {|k,_| molecule.include?(k) }
|
||
|
steps += molecule.scan(/#{k}/).size
|
||
|
|
||
|
molecule.gsub!(k, v)
|
||
|
puts "#{steps}: #{molecule}"
|
||
|
end
|
||
9 years ago
|
__END__
|
||
|
Al => ThF
|
||
|
Al => ThRnFAr
|
||
|
B => BCa
|
||
|
B => TiB
|
||
|
B => TiRnFAr
|
||
|
Ca => CaCa
|
||
|
Ca => PB
|
||
|
Ca => PRnFAr
|
||
|
Ca => SiRnFYFAr
|
||
|
Ca => SiRnMgAr
|
||
|
Ca => SiTh
|
||
|
F => CaF
|
||
|
F => PMg
|
||
|
F => SiAl
|
||
|
H => CRnAlAr
|
||
|
H => CRnFYFYFAr
|
||
|
H => CRnFYMgAr
|
||
|
H => CRnMgYFAr
|
||
|
H => HCa
|
||
|
H => NRnFYFAr
|
||
|
H => NRnMgAr
|
||
|
H => NTh
|
||
|
H => OB
|
||
|
H => ORnFAr
|
||
|
Mg => BF
|
||
|
Mg => TiMg
|
||
|
N => CRnFAr
|
||
|
N => HSi
|
||
|
O => CRnFYFAr
|
||
|
O => CRnMgAr
|
||
|
O => HP
|
||
|
O => NRnFAr
|
||
|
O => OTi
|
||
|
P => CaP
|
||
|
P => PTi
|
||
|
P => SiRnFAr
|
||
|
Si => CaSi
|
||
|
Th => ThCa
|
||
|
Ti => BP
|
||
|
Ti => TiTi
|
||
|
e => HF
|
||
|
e => NAl
|
||
|
e => OMg
|
||
|
|
||
|
CRnCaSiRnBSiRnFArTiBPTiTiBFArPBCaSiThSiRnTiBPBPMgArCaSiRnTiMgArCaSiThCaSiRnFArRnSiRnFArTiTiBFArCaCaSiRnSiThCaCaSiRnMgArFYSiRnFYCaFArSiThCaSiThPBPTiMgArCaPRnSiAlArPBCaCaSiRnFYSiThCaRnFArArCaCaSiRnPBSiRnFArMgYCaCaCaCaSiThCaCaSiAlArCaCaSiRnPBSiAlArBCaCaCaCaSiThCaPBSiThPBPBCaSiRnFYFArSiThCaSiRnFArBCaCaSiRnFYFArSiThCaPBSiThCaSiRnPMgArRnFArPTiBCaPRnFArCaCaCaCaSiRnCaCaSiRnFYFArFArBCaSiThFArThSiThSiRnTiRnPMgArFArCaSiThCaPBCaSiRnBFArCaCaPRnCaCaPMgArSiRnFYFArCaSiThRnPBPMgAr
|