fork download
  1. r=gets.split(?,)
  2. i=(-12..-1).map{|i|(0..6).map{|j|%w{C C# D D# E F F# G G# A A# B}[i+=(59>>j&1)+1]}}.select{|y|r-y==[]}[0]
  3. puts"Dorain scale in "+i[0]if i
Success #stdin #stdout 0.02s 7456KB
stdin
B,B,D,E,D,B,A,G#,A,G#,E,D,F#,E,F#,E,F#,G#,A
stdout
Dorain scale in B