#!ruby -na puts"b = %s, c = %s, d = %s, a = %s" % [*$F, ->b, c, d{((a = [*0..9]).rotate!(b).slice!(c, d) + a).rotate(-b)*''}[*$F.map(&:to_i)]]
3 1 5 1 3 1 7 1 5 0 8 1 4 5 4 9 5 4 7 3 1
b = 3, c = 1, d = 5, a = 0124567839 b = 1, c = 3, d = 1, a = 0412356789 b = 7, c = 1, d = 5, a = 1273456890 b = 0, c = 8, d = 1, a = 8012345679 b = 4, c = 5, d = 4, a = 6783901245 b = 9, c = 5, d = 4, a = 5679012384 b = 7, c = 3, d = 1, a = 9123456078