N = gets.to_i S = gets.chomp A = gets.split.map(&:to_i) cur = Array.new(2) { Array.new(2, 0) } ans = -Float::INFINITY A.zip(S.chars) do |a, s| 2.times do |i| r, b = cur[i] v = (r - b).abs nr = (s == 'R') ? r + a : r nb = (s == 'B') ? b + a : b nv = (nr - nb).abs ans = nv if ans < nv if i == 0 if nr >= nb cur[i] = [nr, nb] else cur[i] = [0, 0] end else if nr <= nb cur[i] = [nr, nb] else cur[i] = [0, 0] end end end end puts ans