# frozen_string_literal: true EPS = 10**-6 S = gets.chomp.chars.map { |safe| safe == 'o' } SAFE_NUM = S.select { |i| i }.size remains = Array.new(S.size, 0) remains[0] = SAFE_NUM S[0..-2].each_with_index do |safe, index| remains[index + 1] = remains[index] remains[index + 1] -= 1 if safe end PROBS = remains.map.with_index do |remain, index| blanks = S.size - index Rational(remain, blanks).to_f * 100 end puts PROBS